home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Games / MAME / src / drivers / m72.c < prev    next >
C/C++ Source or Header  |  2000-05-25  |  117KB  |  3,106 lines

  1. /***************************************************************************
  2.  
  3. IREM M72 board
  4.  
  5. driver by Nicola Salmoria
  6. protection information by Nao
  7.  
  8.                                    Board    Working? Protected?
  9. R-Type                              M72        Y         N
  10. Battle Chopper / Mr. Heli           M72        Y         Y
  11. Ninja Spirit                        M72        Y         Y
  12. Image Fight                         M72        Y         Y
  13. Legend of Hero Tonma                M72        Y         Y
  14. X Multiply                          M72(1)     Y         Y
  15. Dragon Breed                        M81        Y         Y
  16. R-Type II                           M82/M84(2) Y         N
  17. Major Title                         M84        Y         N
  18. Hammerin' Harry    / Daiku no Gensan   M82(3)     Y         N
  19. Ken-Go                              ?          N      Encrypted
  20. Pound for Pound                     M85        Y         N
  21. Air Duel                            M72?       Y         Y
  22. Gallop - Armed Police Unit          M73?(4)    Y         N
  23.  
  24. (1) different addressing PALs, so different memory map
  25. (2) rtype2j has M84 written on the board, but it's the same hardware as rtype2
  26. (3) multiple versions supported, running on different hardware
  27. (4) there is also a M84 version of Gallop
  28.  
  29.  
  30. Notes:
  31.  
  32. Major Title is supposed to disable rowscroll after a shot, but I haven't found how
  33.  
  34. Sprite/tile priorities are not completely understood.
  35.  
  36. Sound doesn't work in Gallop
  37.  
  38. Samples are missing in Gallop. The NMI handler for the sound CPU is just RETN, so
  39. the hardware has to be different. I also can't make a good sample start offset
  40. table. Same thing with Air Duel.
  41.  
  42. Maybe there is a layer enable register, e.g. nspirit shows (for an instant)
  43. incomplete screens with bad colors when you start a game.
  44.  
  45. No samples in Pound for Pound, I haven't checked why; there are a lot of unknown
  46. I/O writes.
  47.  
  48. ***************************************************************************/
  49.  
  50. #include "driver.h"
  51. #include "vidhrdw/generic.h"
  52. #include "sndhrdw/m72.h"
  53.  
  54.  
  55. /* in vidhrdw/m72.c */
  56. extern unsigned char *m72_videoram1,*m72_videoram2,*majtitle_rowscrollram;
  57. void m72_init_machine(void);
  58. void xmultipl_init_machine(void);
  59. void poundfor_init_machine(void);
  60. int m72_interrupt(void);
  61. int m72_vh_start(void);
  62. int dbreed_vh_start(void);
  63. int rtype2_vh_start(void);
  64. int majtitle_vh_start(void);
  65. int hharry_vh_start(void);
  66. void m72_vh_stop(void);
  67. READ_HANDLER( m72_palette1_r );
  68. READ_HANDLER( m72_palette2_r );
  69. WRITE_HANDLER( m72_palette1_w );
  70. WRITE_HANDLER( m72_palette2_w );
  71. READ_HANDLER( m72_videoram1_r );
  72. READ_HANDLER( m72_videoram2_r );
  73. WRITE_HANDLER( m72_videoram1_w );
  74. WRITE_HANDLER( m72_videoram2_w );
  75. WRITE_HANDLER( majtitle_videoram2_w );
  76. WRITE_HANDLER( m72_irq_line_w );
  77. WRITE_HANDLER( m72_scrollx1_w );
  78. WRITE_HANDLER( m72_scrollx2_w );
  79. WRITE_HANDLER( m72_scrolly1_w );
  80. WRITE_HANDLER( m72_scrolly2_w );
  81. WRITE_HANDLER( m72_spritectrl_w );
  82. WRITE_HANDLER( hharry_spritectrl_w );
  83. WRITE_HANDLER( hharryu_spritectrl_w );
  84. void m72_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
  85. void dbreed_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
  86. void majtitle_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
  87. void m72_eof_callback(void);
  88.  
  89.  
  90. static unsigned char *protection_ram;
  91.  
  92.  
  93.  
  94. /***************************************************************************
  95.  
  96. Sample playback
  97.  
  98. In the later games, the sound CPU can program the start offset of the PCM
  99. samples, but it seems the earlier games have them hardcoded somewhere (maybe
  100. a PROM?). So, here I provided some tables with the start offset precomputed.
  101. They could be built automatically for the most part (00 marks the end of a
  102. sample), but some games have holes in the numbering so we would have to
  103. do some alterations anyway.
  104.  
  105. Note that Gallop is wrong, and it doesn't play anything anyway, because the
  106. NMI handler of the sound CPU consists of just RETN - so it must be using
  107. different hardware.
  108.  
  109. ***************************************************************************/
  110.  
  111. static WRITE_HANDLER( bchopper_sample_trigger_w )
  112. {
  113.     int a[6] = { 0x0000, 0x0010, 0x2510, 0x6510, 0x8510, 0x9310 };
  114.     if (data < 6) m72_set_sample_start(a[data]);
  115. }
  116.  
  117. static WRITE_HANDLER( nspirit_sample_trigger_w )
  118. {
  119.     int a[9] = { 0x0000, 0x0020, 0x2020, 0, 0x5720, 0, 0x7b60, 0x9b60, 0xc360 };
  120.     if (data < 9) m72_set_sample_start(a[data]);
  121. }
  122.  
  123. static WRITE_HANDLER( imgfight_sample_trigger_w )
  124. {
  125.     int a[7] = { 0x0000, 0x0020, 0x44e0, 0x98a0, 0xc820, 0xf7a0, 0x108c0 };
  126.     if (data < 7) m72_set_sample_start(a[data]);
  127. }
  128.  
  129. static WRITE_HANDLER( loht_sample_trigger_w )
  130. {
  131.     int a[7] = { 0x0000, 0x0020, 0, 0x2c40, 0x4320, 0x7120, 0xb200 };
  132.     if (data < 7) m72_set_sample_start(a[data]);
  133. }
  134.  
  135. static WRITE_HANDLER( xmultipl_sample_trigger_w )
  136. {
  137.     int a[3] = { 0x0000, 0x0020, 0x1a40 };
  138.     if (data < 3) m72_set_sample_start(a[data]);
  139. }
  140.  
  141. static WRITE_HANDLER( dbreed_sample_trigger_w )
  142. {
  143.     int a[9] = { 0x00000, 0x00020, 0x02c40, 0x08160, 0x0c8c0, 0x0ffe0, 0x13000, 0x15820, 0x15f40 };
  144.     if (data < 9) m72_set_sample_start(a[data]);
  145. }
  146.  
  147. static WRITE_HANDLER( airduel_sample_trigger_w )
  148. {
  149.     int a[16] = { 0x00000, 0x00020, 0x03ec0, 0x05640, 0x06dc0, 0x083a0, 0x0c000, 0x0eb60,
  150.                   0x112e0, 0x13dc0, 0x16520, 0x16d60, 0x18ae0, 0x1a5a0, 0x1bf00, 0x1c340 };
  151.     if (data < 16) m72_set_sample_start(a[data]);
  152. }
  153.  
  154. static WRITE_HANDLER( gallop_sample_trigger_w )
  155. {
  156.     /* this is most likely wrong */
  157.     int a[31] = { 0x00000, 0x00040, 0x01360, 0x02580, 0x04f20, 0x06240, 0x076e0, 0x08660,
  158.                   0x092a0, 0x09ba0, 0x0a560, 0x0cee0, 0x0de20, 0x0e620, 0x0f1c0, 0x10240,
  159.                   0x11380, 0x127a0, 0x13c40, 0x140a0, 0x16760, 0x17e40, 0x18ee0, 0x19f60,
  160.                   0x1bbc0, 0x1cee0, 0x1e320,       0,       0,       0,       0 };
  161.     if (data < 31) m72_set_sample_start(a[data]);
  162. }
  163.  
  164.  
  165.  
  166. /***************************************************************************
  167.  
  168. Protection simulation
  169.  
  170. Most of the games running on this board have an 8751 protection mcu.
  171. It is not known how it works in detail, however it's pretty clear that it
  172. shares RAM at b0000-b0fff.
  173. On startup, the game writes a pattern to the whole RAM, then reads it back
  174. expecting it to be INVERTED. If it isn't, it reports a RAM error.
  175. If the RAM passes the test, the program increments every byte up to b0ffb,
  176. then calls a subroutine at b0000, which has to be provided by the mcu.
  177. It seems that this routine is not supposed to RET, but instead it should
  178. jump directly to the game entry point. The routine should also write some
  179. bytes here and there in RAM (different in every game); those bytes are
  180. checked at various points during the game, causing a crash if they aren't
  181. right.
  182. Note that the program keeps incrementing b0ffe while the game is running,
  183. maybe this is done to keep the 8751 alive. We don't bother with that.
  184.  
  185. Finally, to do the ROM test the program asks the mcu to provide the correct
  186. values. This is done only in service, so doesn't seem to be much of a
  187. protection. Here we have provided the correct crcs for the available dumps,
  188. of course there is no guarantee that they are actually good.
  189.  
  190. All the protection routines below are entirely made up. They get the games
  191. running, but they have not been derived from the real 8751 code.
  192.  
  193. ***************************************************************************/
  194.  
  195. #define CODE_LEN 96
  196. #define CRC_LEN 18
  197.  
  198. /* Battle Chopper / Mr. Heli */
  199. static unsigned char bchopper_code[CODE_LEN] =
  200. {
  201.     0x68,0x00,0xa0,                // push 0a000h
  202.     0x1f,                        // pop ds
  203.     0xc6,0x06,0x38,0x38,0x53,    // mov [3838h], byte 053h
  204.     0xc6,0x06,0x3a,0x38,0x41,    // mov [383ah], byte 041h
  205.     0xc6,0x06,0x3c,0x38,0x4d,    // mov [383ch], byte 04dh
  206.     0xc6,0x06,0x3e,0x38,0x4f,    // mov [383eh], byte 04fh
  207.     0xc6,0x06,0x40,0x38,0x54,    // mov [3840h], byte 054h
  208.     0xc6,0x06,0x42,0x38,0x4f,    // mov [3842h], byte 04fh
  209.     0x68,0x00,0xb0,                // push 0b000h
  210.     0x1f,                        // pop ds
  211.     0xc6,0x06,0x00,0x09,0x49^0xff,    // mov [0900h], byte 049h
  212.     0xc6,0x06,0x00,0x0a,0x49^0xff,    // mov [0a00h], byte 049h
  213.     0xc6,0x06,0x00,0x0b,0x49^0xff,    // mov [0b00h], byte 049h
  214.     0xc6,0x06,0x00,0x00,0xcb^0xff,    // mov [0000h], byte 0cbh ; retf : bypass protection check during the game
  215.     0x68,0x00,0xd0,                // push 0d000h
  216.     0x1f,                        // pop ds
  217.     // the following is for mrheli only, the game checks for
  218.     // "This game can only be played in Japan..." message in the video text buffer
  219.     // the message is nowhere to be found in the ROMs, so has to be displayed by the mcu
  220.     0xc6,0x06,0x70,0x16,0x77,    // mov [1670h], byte 077h
  221.     0xea,0x68,0x01,0x40,0x00    // jmp  0040:$0168
  222. };
  223. static unsigned char bchopper_crc[CRC_LEN] =  {    0x1a,0x12,0x5c,0x08, 0x84,0xb6,0x73,0xd1,
  224.                                                 0x54,0x91,0x94,0xeb, 0x00,0x00 };
  225. static unsigned char mrheli_crc[CRC_LEN] =      {    0x24,0x21,0x1f,0x14, 0xf9,0x28,0xfb,0x47,
  226.                                                 0x4c,0x77,0x9e,0xc2, 0x00,0x00 };
  227.  
  228. /* Ninja Spirit */
  229. static unsigned char nspirit_code[CODE_LEN] =
  230. {
  231.     0x68,0x00,0xa0,                // push 0a000h
  232.     0x1f,                        // pop ds
  233.     0xc6,0x06,0x38,0x38,0x4e,    // mov [3838h], byte 04eh
  234.     0xc6,0x06,0x3a,0x38,0x49,    // mov [383ah], byte 049h
  235.     0xc6,0x06,0x3c,0x38,0x4e,    // mov [383ch], byte 04eh
  236.     0xc6,0x06,0x3e,0x38,0x44,    // mov [383eh], byte 044h
  237.     0xc6,0x06,0x40,0x38,0x4f,    // mov [3840h], byte 04fh
  238.     0xc6,0x06,0x42,0x38,0x55,    // mov [3842h], byte 055h
  239.     0x68,0x00,0xb0,                // push 0b000h
  240.     0x1f,                        // pop ds
  241.     0xc6,0x06,0x00,0x09,0x49^0xff,    // mov [0900h], byte 049h
  242.     0xc6,0x06,0x00,0x0a,0x49^0xff,    // mov [0a00h], byte 049h
  243.     0xc6,0x06,0x00,0x0b,0x49^0xff,    // mov [0b00h], byte 049h
  244.     0x68,0x00,0xd0,                // push 0d000h
  245.     0x1f,                        // pop ds
  246.     // the following is for nspiritj only, the game checks for
  247.     // "This game can only be played in Japan..." message in the video text buffer
  248.     // the message is nowhere to be found in the ROMs, so has to be displayed by the mcu
  249.     0xc6,0x06,0x70,0x16,0x57,    // mov [1670h], byte 057h
  250.     0xc6,0x06,0x71,0x16,0x00,    // mov [1671h], byte 000h
  251.     0xea,0x00,0x00,0x40,0x00    // jmp  0040:$0000
  252. };
  253. static unsigned char nspirit_crc[CRC_LEN] =   {    0xfe,0x94,0x6e,0x4e, 0xc8,0x33,0xa7,0x2d,
  254.                                                 0xf2,0xa3,0xf9,0xe1, 0xa9,0x6c,0x02,0x95, 0x00,0x00 };
  255. static unsigned char nspiritj_crc[CRC_LEN] =  {    0x26,0xa3,0xa5,0xe9, 0xc8,0x33,0xa7,0x2d,
  256.                                                 0xf2,0xa3,0xf9,0xe1, 0xbc,0x6c,0x01,0x95, 0x00,0x00 };
  257.  
  258. /* Image Fight */
  259. static unsigned char imgfight_code[CODE_LEN] =
  260. {
  261.     0x68,0x00,0xa0,                // push 0a000h
  262.     0x1f,                        // pop ds
  263.     0xc6,0x06,0x38,0x38,0x50,    // mov [3838h], byte 050h
  264.     0xc6,0x06,0x3a,0x38,0x49,    // mov [383ah], byte 049h
  265.     0xc6,0x06,0x3c,0x38,0x43,    // mov [383ch], byte 043h
  266.     0xc6,0x06,0x3e,0x38,0x4b,    // mov [383eh], byte 04bh
  267.     0xc6,0x06,0x40,0x38,0x45,    // mov [3840h], byte 045h
  268.     0xc6,0x06,0x42,0x38,0x54,    // mov [3842h], byte 054h
  269.     0x68,0x00,0xb0,                // push 0b000h
  270.     0x1f,                        // pop ds
  271.     0xc6,0x06,0x00,0x09,0x49^0xff,    // mov [0900h], byte 049h
  272.     0xc6,0x06,0x00,0x0a,0x49^0xff,    // mov [0a00h], byte 049h
  273.     0xc6,0x06,0x00,0x0b,0x49^0xff,    // mov [0b00h], byte 049h
  274.     0xc6,0x06,0x20,0x09,0x49^0xff,    // mov [0920h], byte 049h
  275.     0xc6,0x06,0x21,0x09,0x4d^0xff,    // mov [0921h], byte 04dh
  276.     0xc6,0x06,0x22,0x09,0x41^0xff,    // mov [0922h], byte 041h
  277.     0xc6,0x06,0x23,0x09,0x47^0xff,    // mov [0923h], byte 047h
  278.     0x68,0x00,0xd0,                // push 0d000h
  279.     0x1f,                        // pop ds
  280.     // the game checks for
  281.     // "This game can only be played in Japan..." message in the video text buffer
  282.     // the message is nowhere to be found in the ROMs, so has to be displayed by the mcu
  283.     0xc6,0x06,0xb0,0x1c,0x57,    // mov [1cb0h], byte 057h
  284.     0xea,0x00,0x00,0x40,0x00    // jmp  0040:$0000
  285. };
  286. static unsigned char imgfight_crc[CRC_LEN] =  {    0x7e,0xcc,0xec,0x03, 0x04,0x33,0xb6,0xc5,
  287.                                                 0xbf,0x37,0x92,0x94, 0x00,0x00 };
  288.  
  289. /* Legend of Hero Tonma */
  290. static unsigned char loht_code[CODE_LEN] =
  291. {
  292.     0x68,0x00,0xa0,                // push 0a000h
  293.     0x1f,                        // pop ds
  294.     0xc6,0x06,0x3c,0x38,0x47,    // mov [383ch], byte 047h
  295.     0xc6,0x06,0x3d,0x38,0x47,    // mov [383dh], byte 047h
  296.     0xc6,0x06,0x42,0x38,0x44,    // mov [3842h], byte 044h
  297.     0xc6,0x06,0x43,0x38,0x44,    // mov [3843h], byte 044h
  298.     0x68,0x00,0xb0,                // push 0b000h
  299.     0x1f,                        // pop ds
  300.     0xc6,0x06,0x00,0x09,0x49^0xff,    // mov [0900h], byte 049h
  301.     0xc6,0x06,0x00,0x0a,0x49^0xff,    // mov [0a00h], byte 049h
  302.     0xc6,0x06,0x00,0x0b,0x49^0xff,    // mov [0b00h], byte 049h
  303.     0xea,0x5d,0x01,0x40,0x00    // jmp  0040:$015d
  304. };
  305. static unsigned char loht_crc[CRC_LEN] =      {    0x39,0x00,0x82,0xae, 0x2c,0x9d,0x4b,0x73,
  306.                                                 0xfb,0xac,0xd4,0x6d, 0x6d,0x5b,0x77,0xc0, 0x00,0x00 };
  307.  
  308. /* X Multiply */
  309. static unsigned char xmultipl_code[CODE_LEN] =
  310. {
  311.     0xea,0x30,0x02,0x00,0x0e    // jmp  0e00:$0230
  312. };
  313. static unsigned char xmultipl_crc[CRC_LEN] =  {    0x73,0x82,0x4e,0x3f, 0xfc,0x56,0x59,0x06,
  314.                                                 0x05,0x48,0xa8,0xf4, 0x00,0x00 };
  315.  
  316. /* Dragon Breed */
  317. static unsigned char dbreed_code[CODE_LEN] =
  318. {
  319.     0xea,0x6c,0x00,0x00,0x00    // jmp  0000:$006c
  320. };
  321. static unsigned char dbreed_crc[CRC_LEN] =      {    0xa4,0x96,0x5f,0xc0, 0xab,0x49,0x9f,0x19,
  322.                                                 0x84,0xe6,0xd6,0xca, 0x00,0x00 };
  323.  
  324. /* Air Duel */
  325. static unsigned char airduel_code[CODE_LEN] =
  326. {
  327.     0x68,0x00,0xd0,                // push 0d000h
  328.     0x1f,                        // pop ds
  329.     // the game checks for
  330.     // "This game can only be played in Japan..." message in the video text buffer
  331.     // the message is nowhere to be found in the ROMs, so has to be displayed by the mcu
  332.     0xc6,0x06,0xc0,0x1c,0x57,    // mov [1cc0h], byte 057h
  333.     0xea,0x69,0x0b,0x00,0x00    // jmp  0000:$0b69
  334. };
  335. static unsigned char airduel_crc[CRC_LEN] =      {    0x72,0x9c,0xca,0x85, 0xc9,0x12,0xcc,0xea,
  336.                                                 0x00,0x00 };
  337.  
  338.  
  339. unsigned char *protection_code,*protection_crc;
  340.  
  341. static READ_HANDLER( protection_r )
  342. {
  343.     if (offset == 0xffb)
  344.         memcpy(protection_ram,protection_code,CODE_LEN);
  345.  
  346.     return protection_ram[offset];
  347. }
  348.  
  349. static WRITE_HANDLER( protection_w )
  350. {
  351.     protection_ram[offset] = data ^ 0xff;;
  352.  
  353.     if (offset == 0x0fff && data == 0)
  354.         memcpy(&protection_ram[0x0fe0],protection_crc,CRC_LEN);
  355. }
  356.  
  357. static void install_protection_handler(unsigned char *code,unsigned char *crc)
  358. {
  359.     protection_code = code;
  360.     protection_crc =  crc;
  361.     install_mem_read_handler (0,0xb0000,0xb0fff,protection_r);
  362.     install_mem_write_handler(0,0xb0000,0xb0fff,protection_w);
  363.     protection_ram = &memory_region(REGION_CPU1)[0xb0000];
  364. }
  365.  
  366. static void init_bchopper(void)
  367. {
  368.     install_protection_handler(bchopper_code,bchopper_crc);
  369.  
  370.     install_port_write_handler(0,0xc0,0xc0,bchopper_sample_trigger_w);
  371. }
  372.  
  373. static void init_mrheli(void)
  374. {
  375.     install_protection_handler(bchopper_code,mrheli_crc);
  376.  
  377.     install_port_write_handler(0,0xc0,0xc0,bchopper_sample_trigger_w);
  378. }
  379.  
  380. static void init_nspirit(void)
  381. {
  382.     install_protection_handler(nspirit_code,nspirit_crc);
  383.  
  384.     install_port_write_handler(0,0xc0,0xc0,nspirit_sample_trigger_w);
  385. }
  386.  
  387. static void init_nspiritj(void)
  388. {
  389.     install_protection_handler(nspirit_code,nspiritj_crc);
  390.  
  391.     install_port_write_handler(0,0xc0,0xc0,nspirit_sample_trigger_w);
  392. }
  393.  
  394. static void init_imgfight(void)
  395. {
  396.     install_protection_handler(imgfight_code,imgfight_crc);
  397.  
  398.     install_port_write_handler(0,0xc0,0xc0,imgfight_sample_trigger_w);
  399. }
  400.  
  401. static void init_loht(void)
  402. {
  403.     install_protection_handler(loht_code,loht_crc);
  404.  
  405.     install_port_write_handler(0,0xc0,0xc0,loht_sample_trigger_w);
  406. }
  407.  
  408. static void init_xmultipl(void)
  409. {
  410.     install_protection_handler(xmultipl_code,xmultipl_crc);
  411.  
  412.     install_port_write_handler(0,0xc0,0xc0,xmultipl_sample_trigger_w);
  413. }
  414.  
  415. static void init_dbreed(void)
  416. {
  417.     install_protection_handler(dbreed_code,dbreed_crc);
  418.  
  419.     install_port_write_handler(0,0xc0,0xc0,dbreed_sample_trigger_w);
  420. }
  421.  
  422. static void init_airduel(void)
  423. {
  424.     install_protection_handler(airduel_code,airduel_crc);
  425.  
  426.     install_port_write_handler(0,0xc0,0xc0,airduel_sample_trigger_w);
  427. }
  428.  
  429. static void init_gallop(void)
  430. {
  431.     install_port_write_handler(0,0xc0,0xc0,gallop_sample_trigger_w);
  432. }
  433.  
  434.  
  435.  
  436.  
  437. static unsigned char *soundram;
  438.  
  439.  
  440. static READ_HANDLER( soundram_r )
  441. {
  442.     return soundram[offset];
  443. }
  444.  
  445. static WRITE_HANDLER( soundram_w )
  446. {
  447.     soundram[offset] = data;
  448. }
  449.  
  450. static WRITE_HANDLER( m72_port02_w )
  451. {
  452.     if (offset != 0)
  453.     {
  454.         if (data) logerror("write %02x to port 03\n",data);
  455.         return;
  456.     }
  457.     if (data & 0xec) logerror("write %02x to port 02\n",data);
  458.  
  459.     /* bits 0/1 are coin counters */
  460.     coin_counter_w(0,data & 0x01);
  461.     coin_counter_w(1,data & 0x02);
  462.  
  463.     /* bit 3 is used but unknown */
  464.  
  465.     /* bit 4 resets sound CPU (active low) */
  466.     if (data & 0x10)
  467.         cpu_set_reset_line(1,CLEAR_LINE);
  468.     else
  469.         cpu_set_reset_line(1,ASSERT_LINE);
  470.  
  471.     /* other bits unknown */
  472. }
  473.  
  474. static WRITE_HANDLER( rtype2_port02_w )
  475. {
  476.     if (offset != 0)
  477.     {
  478.         if (data) logerror("write %02x to port 03\n",data);
  479.         return;
  480.     }
  481.     if (data & 0xfc) logerror("write %02x to port 02\n",data);
  482.  
  483.     /* bits 0/1 are coin counters */
  484.     coin_counter_w(0,data & 0x01);
  485.     coin_counter_w(1,data & 0x02);
  486.  
  487.     /* other bits unknown */
  488. }
  489.  
  490.  
  491. static READ_HANDLER( poundfor_trackball_r )
  492. {
  493.     static int prev[4],diff[4];
  494.  
  495.     if (offset == 0)
  496.     {
  497.         int i,curr;
  498.  
  499.         for (i = 0;i < 4;i++)
  500.         {
  501.             curr = readinputport(6+i);
  502.             diff[i] = (curr - prev[i]);
  503.             prev[i] = curr;
  504.         }
  505.     }
  506.  
  507.     switch (offset)
  508.     {
  509.         default:
  510.         case 0:
  511.             return diff[0] & 0xff;
  512.         case 1:
  513.             return 0;
  514.         case 2:
  515.             return ((diff[0] >> 8) & 0x1f) | (readinputport(4) & 0xe0);
  516.         case 3:
  517.             return ((diff[2] >> 8) & 0x1f) | (readinputport(5) & 0xe0);
  518.         case 4:
  519.             return diff[1] & 0xff;
  520.         case 5:
  521.             return diff[3] & 0xff;
  522.         case 6:
  523.             return ((diff[1] >> 8) & 0x1f);
  524.         case 7:
  525.             return ((diff[3] >> 8) & 0x1f);
  526.     }
  527. }
  528.  
  529.  
  530.  
  531. #define CPU1_MEMORY(NAME,ROMSIZE,WORKRAM)                         \
  532. static struct MemoryReadAddress NAME##_readmem[] =                \
  533. {                                                                \
  534.     { 0x00000, ROMSIZE-1, MRA_ROM },                            \
  535.     { WORKRAM, WORKRAM+0x3fff, MRA_RAM },                        \
  536.     { 0xc0000, 0xc03ff, MRA_RAM },                                \
  537.     { 0xc8000, 0xc8bff, m72_palette1_r },                        \
  538.     { 0xcc000, 0xccbff, m72_palette2_r },                        \
  539.     { 0xd0000, 0xd3fff, m72_videoram1_r },                        \
  540.     { 0xd8000, 0xdbfff, m72_videoram2_r },                        \
  541.     { 0xe0000, 0xeffff, soundram_r },                            \
  542.     { -1 }    /* end of table */                                    \
  543. };                                                                \
  544. static struct MemoryWriteAddress NAME##_writemem[] =            \
  545. {                                                                \
  546.     { 0x00000, ROMSIZE-1, MWA_ROM },                            \
  547.     { WORKRAM, WORKRAM+0x3fff, MWA_RAM },    /* work RAM */        \
  548.     { 0xc0000, 0xc03ff, MWA_RAM, &spriteram, &spriteram_size },    \
  549.     { 0xc8000, 0xc8bff, m72_palette1_w, &paletteram },            \
  550.     { 0xcc000, 0xccbff, m72_palette2_w, &paletteram_2 },        \
  551.     { 0xd0000, 0xd3fff, m72_videoram1_w, &m72_videoram1 },        \
  552.     { 0xd8000, 0xdbfff, m72_videoram2_w, &m72_videoram2 },        \
  553.     { 0xe0000, 0xeffff, soundram_w },                            \
  554.     { -1 }    /* end of table */                                    \
  555. };
  556.  
  557. /*                     ROMSIZE  WORKRAM */
  558. CPU1_MEMORY( rtype,    0x40000, 0x40000 )
  559. CPU1_MEMORY( m72,      0x80000, 0xa0000 )
  560. CPU1_MEMORY( xmultipl, 0x80000, 0x80000 )
  561. CPU1_MEMORY( dbreed,   0x80000, 0x90000 )
  562.  
  563.  
  564. static struct MemoryReadAddress rtype2_readmem[] =
  565. {
  566.     { 0x00000, 0x7ffff, MRA_ROM },
  567.     { 0xc0000, 0xc03ff, MRA_RAM },
  568.     { 0xc8000, 0xc8bff, m72_palette1_r },
  569.     { 0xd0000, 0xd3fff, m72_videoram1_r },
  570.     { 0xd4000, 0xd7fff, m72_videoram2_r },
  571.     { 0xd8000, 0xd8bff, m72_palette2_r },
  572.     { 0xe0000, 0xe3fff, MRA_RAM },
  573.     { -1 }    /* end of table */
  574. };
  575.  
  576. static struct MemoryWriteAddress rtype2_writemem[] =
  577. {
  578.     { 0x00000, 0x7ffff, MWA_ROM },
  579.     { 0xb0000, 0xb0001, m72_irq_line_w },
  580.     { 0xbc000, 0xbc001, m72_spritectrl_w },
  581.     { 0xc0000, 0xc03ff, MWA_RAM, &spriteram, &spriteram_size },
  582.     { 0xc8000, 0xc8bff, m72_palette1_w, &paletteram },
  583.     { 0xd0000, 0xd3fff, m72_videoram1_w, &m72_videoram1 },
  584.     { 0xd4000, 0xd7fff, m72_videoram2_w, &m72_videoram2 },
  585.     { 0xd8000, 0xd8bff, m72_palette2_w, &paletteram_2 },
  586.     { 0xe0000, 0xe3fff, MWA_RAM },    /* work RAM */
  587.     { -1 }    /* end of table */
  588. };
  589.  
  590. static struct MemoryReadAddress majtitle_readmem[] =
  591. {
  592.     { 0x00000, 0x7ffff, MRA_ROM },
  593.     { 0xa0000, 0xa03ff, MRA_RAM },
  594.     { 0xa4000, 0xa4bff, m72_palette2_r },
  595.     { 0xac000, 0xaffff, m72_videoram1_r },
  596.     { 0xb0000, 0xbffff, m72_videoram2_r },
  597.     { 0xc0000, 0xc03ff, MRA_RAM },
  598.     { 0xc8000, 0xc83ff, MRA_RAM },
  599.     { 0xcc000, 0xccbff, m72_palette1_r },
  600.     { 0xd0000, 0xd3fff, MRA_RAM },
  601.     { -1 }    /* end of table */
  602. };
  603.  
  604. static struct MemoryWriteAddress majtitle_writemem[] =
  605. {
  606.     { 0x00000, 0x7ffff, MWA_ROM },
  607.     { 0xa0000, 0xa03ff, MWA_RAM, &majtitle_rowscrollram },
  608.     { 0xa4000, 0xa4bff, m72_palette2_w, &paletteram_2 },
  609.     { 0xac000, 0xaffff, m72_videoram1_w, &m72_videoram1 },
  610.     { 0xb0000, 0xbffff, majtitle_videoram2_w, &m72_videoram2 },
  611.     { 0xc0000, 0xc03ff, MWA_RAM, &spriteram, &spriteram_size },
  612.     { 0xc8000, 0xc83ff, MWA_RAM, &spriteram_2 },
  613.     { 0xcc000, 0xccbff, m72_palette1_w, &paletteram },
  614.     { 0xd0000, 0xd3fff, MWA_RAM },    /* work RAM */
  615.     { 0xe0000, 0xe0001, m72_irq_line_w },
  616. //    { 0xe4000, 0xe4001, MWA_RAM },    /* playfield enable? 1 during screen transitions, 0 otherwise */
  617.     { 0xec000, 0xec001, hharryu_spritectrl_w },
  618.     { -1 }    /* end of table */
  619. };
  620.  
  621. static struct MemoryReadAddress hharry_readmem[] =
  622. {
  623.     { 0x00000, 0x7ffff, MRA_ROM },
  624.     { 0xa0000, 0xa3fff, MRA_RAM },
  625.     { 0xc0000, 0xc03ff, MRA_RAM },
  626.     { 0xc8000, 0xc8bff, m72_palette1_r },
  627.     { 0xcc000, 0xccbff, m72_palette2_r },
  628.     { 0xd0000, 0xd3fff, m72_videoram1_r },
  629.     { 0xd8000, 0xdbfff, m72_videoram2_r },
  630.     { -1 }    /* end of table */
  631. };
  632.  
  633. static struct MemoryWriteAddress hharry_writemem[] =
  634. {
  635.     { 0x00000, 0x7ffff, MWA_ROM },
  636.     { 0xa0000, 0xa3fff, MWA_RAM },    /* work RAM */
  637.     { 0xb0ffe, 0xb0fff, MWA_RAM },    /* leftover from protection?? */
  638.     { 0xc0000, 0xc03ff, MWA_RAM, &spriteram, &spriteram_size },
  639.     { 0xc8000, 0xc8bff, m72_palette1_w, &paletteram },
  640.     { 0xcc000, 0xccbff, m72_palette2_w, &paletteram_2 },
  641.     { 0xd0000, 0xd3fff, m72_videoram1_w, &m72_videoram1 },
  642.     { 0xd8000, 0xdbfff, m72_videoram2_w, &m72_videoram2 },
  643.     { -1 }    /* end of table */
  644. };
  645.  
  646. static struct MemoryReadAddress hharryu_readmem[] =
  647. {
  648.     { 0x00000, 0x7ffff, MRA_ROM },
  649.     { 0xa0000, 0xa0bff, m72_palette1_r },
  650.     { 0xa8000, 0xa8bff, m72_palette2_r },
  651.     { 0xc0000, 0xc03ff, MRA_RAM },
  652.     { 0xd0000, 0xd3fff, m72_videoram1_r },
  653.     { 0xd4000, 0xd7fff, m72_videoram2_r },
  654.     { 0xe0000, 0xe3fff, MRA_RAM },
  655.     { -1 }    /* end of table */
  656. };
  657.  
  658. static struct MemoryWriteAddress hharryu_writemem[] =
  659. {
  660.     { 0x00000, 0x7ffff, MWA_ROM },
  661.     { 0xa0000, 0xa0bff, m72_palette1_w, &paletteram },
  662.     { 0xa8000, 0xa8bff, m72_palette2_w, &paletteram_2 },
  663.     { 0xb0000, 0xb0001, m72_irq_line_w },
  664.     { 0xbc000, 0xbc001, hharryu_spritectrl_w },
  665.     { 0xb0ffe, 0xb0fff, MWA_RAM },    /* leftover from protection?? */
  666.     { 0xc0000, 0xc03ff, MWA_RAM, &spriteram, &spriteram_size },
  667.     { 0xd0000, 0xd3fff, m72_videoram1_w, &m72_videoram1 },
  668.     { 0xd4000, 0xd7fff, m72_videoram2_w, &m72_videoram2 },
  669.     { 0xe0000, 0xe3fff, MWA_RAM },    /* work RAM */
  670.     { -1 }    /* end of table */
  671. };
  672.  
  673. static struct IOReadPort readport[] =
  674. {
  675.     { 0x00, 0x00, input_port_0_r },
  676.     { 0x01, 0x01, input_port_1_r },
  677.     { 0x02, 0x02, input_port_2_r },
  678.     { 0x03, 0x03, input_port_3_r },
  679.     { 0x04, 0x04, input_port_4_r },
  680.     { 0x05, 0x05, input_port_5_r },
  681.     { -1 }  /* end of table */
  682. };
  683.  
  684. static struct IOReadPort poundfor_readport[] =
  685. {
  686.     { 0x02, 0x02, input_port_0_r },
  687.     { 0x03, 0x03, input_port_1_r },
  688.     { 0x04, 0x04, input_port_2_r },
  689.     { 0x05, 0x05, input_port_3_r },
  690.     { 0x08, 0x0f, poundfor_trackball_r },
  691.     { -1 }  /* end of table */
  692. };
  693.  
  694.  
  695. static struct IOWritePort writeport[] =
  696. {
  697.     { 0x00, 0x01, m72_sound_command_w },
  698.     { 0x02, 0x03, m72_port02_w },    /* coin counters, reset sound cpu, other stuff? */
  699.     { 0x04, 0x05, m72_spritectrl_w },
  700.     { 0x06, 0x07, m72_irq_line_w },
  701.     { 0x80, 0x81, m72_scrolly1_w },
  702.     { 0x82, 0x83, m72_scrollx1_w },
  703.     { 0x84, 0x85, m72_scrolly2_w },
  704.     { 0x86, 0x87, m72_scrollx2_w },
  705. /*    { 0xc0, 0xc0      trigger sample, filled by init_ function */
  706.     { -1 }  /* end of table */
  707. };
  708.  
  709. static struct IOWritePort xmultipl_writeport[] =
  710. {
  711.     { 0x00, 0x01, m72_sound_command_w },
  712.     { 0x02, 0x03, m72_port02_w },    /* coin counters, reset sound cpu, other stuff? */
  713.     { 0x04, 0x04, hharry_spritectrl_w },
  714.     { 0x06, 0x07, m72_irq_line_w },
  715.     { 0x80, 0x81, m72_scrolly1_w },
  716.     { 0x82, 0x83, m72_scrollx1_w },
  717.     { 0x84, 0x85, m72_scrolly2_w },
  718.     { 0x86, 0x87, m72_scrollx2_w },
  719. /*    { 0xc0, 0xc0      trigger sample, filled by init_ function */
  720.     { -1 }  /* end of table */
  721. };
  722.  
  723. static struct IOWritePort rtype2_writeport[] =
  724. {
  725.     { 0x00, 0x01, m72_sound_command_w },
  726.     { 0x02, 0x03, rtype2_port02_w },
  727.     { 0x80, 0x81, m72_scrolly1_w },
  728.     { 0x82, 0x83, m72_scrollx1_w },
  729.     { 0x84, 0x85, m72_scrolly2_w },
  730.     { 0x86, 0x87, m72_scrollx2_w },
  731.     { -1 }  /* end of table */
  732. };
  733.  
  734. static struct IOWritePort hharry_writeport[] =
  735. {
  736.     { 0x00, 0x01, m72_sound_command_w },
  737.     { 0x02, 0x03, rtype2_port02_w },    /* coin counters, reset sound cpu, other stuff? */
  738.     { 0x04, 0x04, hharry_spritectrl_w },
  739.     { 0x06, 0x07, m72_irq_line_w },
  740.     { 0x80, 0x81, m72_scrolly1_w },
  741.     { 0x82, 0x83, m72_scrollx1_w },
  742.     { 0x84, 0x85, m72_scrolly2_w },
  743.     { 0x86, 0x87, m72_scrollx2_w },
  744.     { -1 }  /* end of table */
  745. };
  746.  
  747.  
  748. static struct MemoryReadAddress sound_readmem[] =
  749. {
  750.     { 0x0000, 0xffff, MRA_RAM },
  751.     { -1 }    /* end of table */
  752. };
  753.  
  754. static struct MemoryWriteAddress sound_writemem[] =
  755. {
  756.     { 0x0000, 0xffff, MWA_RAM, &soundram },
  757.     { -1 }    /* end of table */
  758. };
  759.  
  760. static struct IOReadPort sound_readport[] =
  761. {
  762.     { 0x01, 0x01, YM2151_status_port_0_r },
  763.     { 0x02, 0x02, soundlatch_r },
  764.     { 0x84, 0x84, m72_sample_r },
  765.     { -1 }  /* end of table */
  766. };
  767.  
  768. static struct IOWritePort sound_writeport[] =
  769. {
  770.     { 0x00, 0x00, YM2151_register_port_0_w },
  771.     { 0x01, 0x01, YM2151_data_port_0_w },
  772.     { 0x06, 0x06, m72_sound_irq_ack_w },
  773.     { 0x82, 0x82, m72_sample_w },
  774.     { -1 }  /* end of table */
  775. };
  776.  
  777. static struct IOReadPort rtype2_sound_readport[] =
  778. {
  779.     { 0x01, 0x01, YM2151_status_port_0_r },
  780.     { 0x80, 0x80, soundlatch_r },
  781.     { 0x84, 0x84, m72_sample_r },
  782.     { -1 }  /* end of table */
  783. };
  784.  
  785. static struct IOWritePort rtype2_sound_writeport[] =
  786. {
  787.     { 0x00, 0x00, YM2151_register_port_0_w },
  788.     { 0x01, 0x01, YM2151_data_port_0_w },
  789.     { 0x80, 0x81, rtype2_sample_addr_w },
  790.     { 0x82, 0x82, m72_sample_w },
  791.     { 0x83, 0x83, m72_sound_irq_ack_w },
  792.     { -1 }  /* end of table */
  793. };
  794.  
  795. static struct IOReadPort poundfor_sound_readport[] =
  796. {
  797.     { 0x41, 0x41, YM2151_status_port_0_r },
  798.     { 0x42, 0x42, soundlatch_r },
  799. //    { 0x84, 0x84, m72_sample_r },
  800.     { -1 }  /* end of table */
  801. };
  802.  
  803. static struct IOWritePort poundfor_sound_writeport[] =
  804. {
  805.     { 0x40, 0x40, YM2151_register_port_0_w },
  806.     { 0x41, 0x41, YM2151_data_port_0_w },
  807.     { 0x42, 0x42, m72_sound_irq_ack_w },
  808. //    { 0x80, 0x81, _sample_addr_w },
  809. //    { 0x82, 0x82, m72_sample_w },
  810.     { -1 }  /* end of table */
  811. };
  812.  
  813.  
  814.  
  815. #define JOYSTICK_1 \
  816.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY ) \
  817.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY ) \
  818.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY ) \
  819.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY )
  820.  
  821. #define JOYSTICK_2 \
  822.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL ) \
  823.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT  | IPF_8WAY | IPF_COCKTAIL ) \
  824.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN  | IPF_8WAY | IPF_COCKTAIL ) \
  825.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP    | IPF_8WAY | IPF_COCKTAIL )
  826.  
  827. #define COIN_MODE_1 \
  828.     PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) ) \
  829.     PORT_DIPSETTING(    0xa0, DEF_STR( 6C_1C ) ) \
  830.     PORT_DIPSETTING(    0xb0, DEF_STR( 5C_1C ) ) \
  831.     PORT_DIPSETTING(    0xc0, DEF_STR( 4C_1C ) ) \
  832.     PORT_DIPSETTING(    0xd0, DEF_STR( 3C_1C ) ) \
  833.     PORT_DIPSETTING(    0x10, DEF_STR( 8C_3C ) ) \
  834.     PORT_DIPSETTING(    0xe0, DEF_STR( 2C_1C ) ) \
  835.     PORT_DIPSETTING(    0x20, DEF_STR( 5C_3C ) ) \
  836.     PORT_DIPSETTING(    0x30, DEF_STR( 3C_2C ) ) \
  837.     PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) ) \
  838.     PORT_DIPSETTING(    0x40, DEF_STR( 2C_3C ) ) \
  839.     PORT_DIPSETTING(    0x90, DEF_STR( 1C_2C ) ) \
  840.     PORT_DIPSETTING(    0x80, DEF_STR( 1C_3C ) ) \
  841.     PORT_DIPSETTING(    0x70, DEF_STR( 1C_4C ) ) \
  842.     PORT_DIPSETTING(    0x60, DEF_STR( 1C_5C ) ) \
  843.     PORT_DIPSETTING(    0x50, DEF_STR( 1C_6C ) ) \
  844.     PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
  845.  
  846. #define COIN_MODE_2 \
  847.     PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) \
  848.     PORT_DIPSETTING(    0x00, DEF_STR( 5C_1C ) ) \
  849.     PORT_DIPSETTING(    0x10, DEF_STR( 3C_1C ) ) \
  850.     PORT_DIPSETTING(    0x20, DEF_STR( 2C_1C ) ) \
  851.     PORT_DIPSETTING(    0x30, DEF_STR( 1C_1C ) ) \
  852.     PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) \
  853.     PORT_DIPSETTING(    0xc0, DEF_STR( 1C_2C ) ) \
  854.     PORT_DIPSETTING(    0x80, DEF_STR( 1C_3C ) ) \
  855.     PORT_DIPSETTING(    0x40, DEF_STR( 1C_5C ) ) \
  856.     PORT_DIPSETTING(    0x00, DEF_STR( 1C_6C ) )
  857.  
  858.  
  859. INPUT_PORTS_START( rtype )
  860.     PORT_START
  861.     JOYSTICK_1
  862.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 )
  863.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )
  864.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
  865.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
  866.  
  867.     PORT_START
  868.     JOYSTICK_2
  869.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_COCKTAIL )
  870.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
  871.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
  872.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
  873.  
  874.     PORT_START
  875.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
  876.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
  877.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
  878.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
  879.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
  880.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */
  881.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  882.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  883.  
  884.     PORT_START
  885.     PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  886.  
  887.     PORT_START
  888.     PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
  889.     PORT_DIPSETTING(    0x02, "2" )
  890.     PORT_DIPSETTING(    0x03, "3" )
  891.     PORT_DIPSETTING(    0x01, "4" )
  892.     PORT_DIPSETTING(    0x00, "5" )
  893.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) )
  894.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  895.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  896.     PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) )
  897.     PORT_DIPSETTING(    0x00, "50k 150k 250k 400k 600k" )
  898.     PORT_DIPSETTING(    0x08, "100k 200k 350k 500k 700k"  )
  899.     /* Coin Mode 1 */
  900.     COIN_MODE_1
  901.     /* Coin Mode 2, not supported yet */
  902.     // COIN_MODE_2
  903.  
  904.     PORT_START
  905.     PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  906.     PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  907.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  908.     PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
  909.     PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  910.     PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
  911.     PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
  912.     PORT_DIPSETTING(    0x04, "Mode 1" )
  913.     PORT_DIPSETTING(    0x00, "Mode 2" )
  914.     PORT_DIPNAME( 0x08, 0x08, DEF_STR( Difficulty ) )
  915.     PORT_DIPSETTING(    0x08, "Normal" )
  916.     PORT_DIPSETTING(    0x00, "Difficult" )
  917.     PORT_DIPNAME( 0x10, 0x10, "Allow Continue" )
  918.     PORT_DIPSETTING(    0x00, DEF_STR( No ) )
  919.     PORT_DIPSETTING(    0x10, DEF_STR( Yes ) )
  920.     /* In stop mode, press 2 to stop and 1 to restart */
  921.     PORT_BITX   ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stop Mode", IP_KEY_NONE, IP_JOY_NONE )
  922.     PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  923.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  924.     PORT_BITX( 0x40,    0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  925.     PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  926.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  927.     PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  928. INPUT_PORTS_END
  929.  
  930. /* identical but Demo Sounds is inverted */
  931. INPUT_PORTS_START( rtypep )
  932.     PORT_START
  933.     JOYSTICK_1
  934.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 )
  935.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )
  936.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
  937.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
  938.  
  939.     PORT_START
  940.     JOYSTICK_2
  941.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_COCKTAIL )
  942.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
  943.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
  944.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
  945.  
  946.     PORT_START
  947.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
  948.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
  949.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
  950.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
  951.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
  952.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */
  953.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  954.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  955.  
  956.     PORT_START
  957.     PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  958.  
  959.     PORT_START
  960.     PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
  961.     PORT_DIPSETTING(    0x02, "2" )
  962.     PORT_DIPSETTING(    0x03, "3" )
  963.     PORT_DIPSETTING(    0x01, "4" )
  964.     PORT_DIPSETTING(    0x00, "5" )
  965.     PORT_DIPNAME( 0x04, 0x04, DEF_STR( Demo_Sounds ) )
  966.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  967.     PORT_DIPSETTING(    0x04, DEF_STR( On ) )
  968.     PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) )
  969.     PORT_DIPSETTING(    0x00, "50k 150k 250k 400k 600k" )
  970.     PORT_DIPSETTING(    0x08, "100k 200k 350k 500k 700k"  )
  971.     /* Coin Mode 1 */
  972.     COIN_MODE_1
  973.     /* Coin Mode 2, not supported yet */
  974.     // COIN_MODE_2
  975.  
  976.     PORT_START
  977.     PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  978.     PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  979.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  980.     PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
  981.     PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  982.     PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
  983.     PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
  984.     PORT_DIPSETTING(    0x04, "Mode 1" )
  985.     PORT_DIPSETTING(    0x00, "Mode 2" )
  986.     PORT_DIPNAME( 0x08, 0x08, DEF_STR( Difficulty ) )
  987.     PORT_DIPSETTING(    0x08, "Normal" )
  988.     PORT_DIPSETTING(    0x00, "Difficult" )
  989.     PORT_DIPNAME( 0x10, 0x10, "Allow Continue" )
  990.     PORT_DIPSETTING(    0x00, DEF_STR( No ) )
  991.     PORT_DIPSETTING(    0x10, DEF_STR( Yes ) )
  992.     /* In stop mode, press 2 to stop and 1 to restart */
  993.     PORT_BITX   ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stop Mode", IP_KEY_NONE, IP_JOY_NONE )
  994.     PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  995.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  996.     PORT_BITX( 0x40,    0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  997.     PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  998.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  999.     PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  1000. INPUT_PORTS_END
  1001.  
  1002. INPUT_PORTS_START( bchopper )
  1003.     PORT_START
  1004.     JOYSTICK_1
  1005.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 )
  1006.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )
  1007.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
  1008.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
  1009.  
  1010.     PORT_START
  1011.     JOYSTICK_2
  1012.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_COCKTAIL )
  1013.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
  1014.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
  1015.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
  1016.  
  1017.     PORT_START
  1018.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
  1019.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
  1020.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
  1021.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
  1022.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1023.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */
  1024.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1025.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1026.  
  1027.     PORT_START
  1028.     PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1029.  
  1030.     PORT_START
  1031.     PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
  1032.     PORT_DIPSETTING(    0x00, "1" )
  1033.     PORT_DIPSETTING(    0x02, "2" )
  1034.     PORT_DIPSETTING(    0x03, "3" )
  1035.     PORT_DIPSETTING(    0x01, "4" )
  1036.     PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
  1037.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1038.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1039.     PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
  1040.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1041.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1042.     /* Coin Mode 1 */
  1043.     COIN_MODE_1
  1044.     /* Coin Mode 2, not supported yet */
  1045.     // COIN_MODE_2
  1046.  
  1047.     PORT_START
  1048.     PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  1049.     PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1050.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1051.     PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
  1052.     PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  1053.     PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
  1054.     PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
  1055.     PORT_DIPSETTING(    0x04, "Mode 1" )
  1056.     PORT_DIPSETTING(    0x00, "Mode 2" )
  1057.     PORT_DIPNAME( 0x08, 0x08, "Weapons Cost" )
  1058.     PORT_DIPSETTING(    0x08, "Normal" )
  1059.     PORT_DIPSETTING(    0x00, "Double" )
  1060.     PORT_DIPNAME( 0x10, 0x10, "Allow Continue" )
  1061.     PORT_DIPSETTING(    0x00, DEF_STR( No ) )
  1062.     PORT_DIPSETTING(    0x10, DEF_STR( Yes ) )
  1063.     /* In stop mode, press 2 to stop and 1 to restart */
  1064.     PORT_BITX   ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stop Mode", IP_KEY_NONE, IP_JOY_NONE )
  1065.     PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  1066.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1067.     PORT_BITX( 0x40,    0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  1068.     PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1069.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1070.     PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  1071. INPUT_PORTS_END
  1072.  
  1073. INPUT_PORTS_START( nspirit )
  1074.     PORT_START
  1075.     JOYSTICK_1
  1076.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 )
  1077.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
  1078.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 )
  1079.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 )
  1080.  
  1081.     PORT_START
  1082.     JOYSTICK_2
  1083.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_COCKTAIL )
  1084.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
  1085.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
  1086.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
  1087.  
  1088.     PORT_START
  1089.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
  1090.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
  1091.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
  1092.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
  1093.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1094.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */
  1095.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1096.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1097.  
  1098.     PORT_START
  1099.     PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1100.  
  1101.     PORT_START
  1102.     PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
  1103.     PORT_DIPSETTING(    0x02, "2" )
  1104.     PORT_DIPSETTING(    0x03, "3" )
  1105.     PORT_DIPSETTING(    0x01, "4" )
  1106.     PORT_DIPSETTING(    0x00, "5" )
  1107.     PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
  1108.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1109.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1110.     PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) /* Probably Bonus Life */
  1111.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1112.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1113.     /* Coin Mode 1 */
  1114.     COIN_MODE_1
  1115.     /* Coin Mode 2, not supported yet */
  1116.     // COIN_MODE_2
  1117.  
  1118.     PORT_START
  1119.     PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  1120.     PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1121.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1122.     PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
  1123.     PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  1124.     PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
  1125.     PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
  1126.     PORT_DIPSETTING(    0x04, "Mode 1" )
  1127.     PORT_DIPSETTING(    0x00, "Mode 2" )
  1128.     PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
  1129.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1130.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1131.     PORT_DIPNAME( 0x10, 0x10, "Allow Continue" )
  1132.     PORT_DIPSETTING(    0x00, DEF_STR( No ) )
  1133.     PORT_DIPSETTING(    0x10, DEF_STR( Yes ) )
  1134.     /* In stop mode, press 2 to stop and 1 to restart */
  1135.     PORT_BITX   ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stop Mode", IP_KEY_NONE, IP_JOY_NONE )
  1136.     PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  1137.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1138.     PORT_BITX( 0x40,    0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  1139.     PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1140.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1141.     PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  1142. INPUT_PORTS_END
  1143.  
  1144. INPUT_PORTS_START( imgfight )
  1145.     PORT_START
  1146.     JOYSTICK_1
  1147.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 )
  1148.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )
  1149.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
  1150.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
  1151.  
  1152.     PORT_START
  1153.     JOYSTICK_2
  1154.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_COCKTAIL )
  1155.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
  1156.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
  1157.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
  1158.  
  1159.     PORT_START
  1160.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
  1161.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
  1162.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
  1163.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
  1164.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1165.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */
  1166.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1167.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1168.  
  1169.     PORT_START
  1170.     PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1171.  
  1172.     PORT_START
  1173.     PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
  1174.     PORT_DIPSETTING(    0x02, "2" )
  1175.     PORT_DIPSETTING(    0x03, "3" )
  1176.     PORT_DIPSETTING(    0x01, "4" )
  1177.     PORT_DIPSETTING(    0x00, "5" )
  1178.     PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
  1179.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1180.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1181.     PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
  1182.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1183.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1184.     /* Coin Mode 1 */
  1185.     COIN_MODE_1
  1186.     /* Coin Mode 2, not supported yet */
  1187.     // COIN_MODE_2
  1188.  
  1189.     PORT_START
  1190.     PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  1191.     PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1192.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1193.     PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
  1194.     PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  1195.     PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
  1196.     PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
  1197.     PORT_DIPSETTING(    0x04, "Mode 1" )
  1198.     PORT_DIPSETTING(    0x00, "Mode 2" )
  1199.     PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
  1200.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1201.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1202.     PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
  1203.     PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  1204.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1205.     /* In stop mode, press 2 to stop and 1 to restart */
  1206.     PORT_BITX   ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stop Mode", IP_KEY_NONE, IP_JOY_NONE )
  1207.     PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  1208.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1209.     PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
  1210.     PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1211.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1212.     PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  1213. INPUT_PORTS_END
  1214.  
  1215. INPUT_PORTS_START( loht )
  1216.     PORT_START
  1217.     JOYSTICK_1
  1218.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 )
  1219.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )
  1220.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
  1221.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
  1222.  
  1223.     PORT_START
  1224.     JOYSTICK_2
  1225.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_COCKTAIL )
  1226.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
  1227.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
  1228.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
  1229.  
  1230.     PORT_START
  1231.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
  1232.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
  1233.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
  1234.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
  1235.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1236.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */
  1237.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1238.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1239.  
  1240.     PORT_START
  1241.     PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1242.  
  1243.     PORT_START
  1244.     PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
  1245.     PORT_DIPSETTING(    0x00, "2" )
  1246.     PORT_DIPSETTING(    0x03, "3" )
  1247.     PORT_DIPSETTING(    0x02, "4" )
  1248.     PORT_DIPSETTING(    0x01, "5" )
  1249.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) )
  1250.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1251.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1252.     PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
  1253.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1254.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1255.     /* Coin Mode 1 */
  1256.     COIN_MODE_1
  1257.     /* Coin Mode 2, not supported yet */
  1258.     // COIN_MODE_2
  1259.  
  1260.     PORT_START
  1261.     PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  1262.     PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1263.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1264.     PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
  1265.     PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  1266.     PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
  1267.     PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
  1268.     PORT_DIPSETTING(    0x04, "Mode 1" )
  1269.     PORT_DIPSETTING(    0x00, "Mode 2" )
  1270.     PORT_DIPNAME( 0x18, 0x18, DEF_STR( Difficulty ) )
  1271.     PORT_DIPSETTING(    0x00, "Easy" )
  1272.     PORT_DIPSETTING(    0x18, "Normal" )
  1273.     PORT_DIPSETTING(    0x10, "Hard" )
  1274.     PORT_DIPSETTING(    0x08, "Very Hard" )
  1275.     /* In stop mode, press 2 to stop and 1 to restart */
  1276.     PORT_BITX   ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stop Mode", IP_KEY_NONE, IP_JOY_NONE )
  1277.     PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  1278.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1279.     PORT_BITX( 0x40,    0x40, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Invulnerability", IP_KEY_NONE, IP_JOY_NONE )
  1280.     PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1281.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1282.     PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  1283. INPUT_PORTS_END
  1284.  
  1285. INPUT_PORTS_START( xmultipl )
  1286.     PORT_START
  1287.     JOYSTICK_1
  1288.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 )
  1289.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )
  1290.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
  1291.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
  1292.  
  1293.     PORT_START
  1294.     JOYSTICK_2
  1295.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_COCKTAIL )
  1296.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
  1297.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
  1298.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
  1299.  
  1300.     PORT_START
  1301.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
  1302.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
  1303.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
  1304.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
  1305.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1306.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */
  1307.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1308.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1309.  
  1310.     PORT_START
  1311.     PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1312.  
  1313.     PORT_START
  1314.     PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
  1315.     PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1316.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1317.     PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
  1318.     PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
  1319.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1320.     PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Lives ) )
  1321.     PORT_DIPSETTING(    0x08, "1" )
  1322.     PORT_DIPSETTING(    0x04, "2" )
  1323.     PORT_DIPSETTING(    0x0c, "3" )
  1324.     PORT_DIPSETTING(    0x00, "4" )
  1325.     /* Coin Mode 1 */
  1326.     COIN_MODE_1
  1327.     /* Coin Mode 2, not supported yet */
  1328.     // COIN_MODE_2
  1329.  
  1330.     PORT_START
  1331.     PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  1332.     PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1333.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1334.     PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
  1335.     PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  1336.     PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
  1337.     PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
  1338.     PORT_DIPSETTING(    0x04, "Mode 1" )
  1339.     PORT_DIPSETTING(    0x00, "Mode 2" )
  1340.     PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) )
  1341.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  1342.     PORT_DIPSETTING(    0x08, DEF_STR( On ) )
  1343.     PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
  1344.     PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  1345.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1346.     PORT_DIPNAME( 0x20, 0x20, "Allow Continue" )
  1347.     PORT_DIPSETTING(    0x00, DEF_STR( No ) )
  1348.     PORT_DIPSETTING(    0x20, DEF_STR( Yes ) )
  1349.     PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
  1350.     PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1351.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1352.     PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  1353. INPUT_PORTS_END
  1354.  
  1355. INPUT_PORTS_START( dbreed )
  1356.     PORT_START
  1357.     JOYSTICK_1
  1358.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 )
  1359.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )
  1360.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
  1361.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
  1362.  
  1363.     PORT_START
  1364.     JOYSTICK_2
  1365.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_COCKTAIL )
  1366.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
  1367.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
  1368.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
  1369.  
  1370.     PORT_START
  1371.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
  1372.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
  1373.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
  1374.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
  1375.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1376.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */
  1377.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1378.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1379.  
  1380.     PORT_START
  1381.     PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1382.  
  1383.     PORT_START
  1384.     PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
  1385.     PORT_DIPSETTING(    0x02, "2" )
  1386.     PORT_DIPSETTING(    0x03, "3" )
  1387.     PORT_DIPSETTING(    0x01, "4" )
  1388.     PORT_DIPSETTING(    0x00, "5" )
  1389.     PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
  1390.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1391.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1392.     PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
  1393.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1394.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1395.     /* Coin Mode 1 */
  1396.     COIN_MODE_1
  1397.     /* Coin Mode 2, not supported yet */
  1398.     // COIN_MODE_2
  1399.  
  1400.     PORT_START
  1401.     PORT_DIPNAME( 0x01, 0x01, "Flip Screen?" )
  1402.     PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1403.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1404.     PORT_DIPNAME( 0x02, 0x00, DEF_STR( Cabinet ) )
  1405.     PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  1406.     PORT_DIPSETTING(    0x02, DEF_STR( Cocktail ) )
  1407.     PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
  1408.     PORT_DIPSETTING(    0x04, "Mode 1" )
  1409.     PORT_DIPSETTING(    0x00, "Mode 2" )
  1410.     PORT_DIPNAME( 0x08, 0x00, DEF_STR( Demo_Sounds ) )
  1411.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1412.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1413.     PORT_DIPNAME( 0x10, 0x10, "Allow Continue" )
  1414.     PORT_DIPSETTING(    0x00, DEF_STR( No ) )
  1415.     PORT_DIPSETTING(    0x10, DEF_STR( Yes ) )
  1416.     /* In stop mode, press 2 to stop and 1 to restart */
  1417.     PORT_BITX   ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stop Mode", IP_KEY_NONE, IP_JOY_NONE )
  1418.     PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  1419.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1420.     PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
  1421.     PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1422.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1423.     PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  1424. INPUT_PORTS_END
  1425.  
  1426. INPUT_PORTS_START( rtype2 )
  1427.     PORT_START
  1428.     JOYSTICK_1
  1429.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 )
  1430.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )
  1431.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
  1432.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
  1433.  
  1434.     PORT_START
  1435.     JOYSTICK_2
  1436.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_COCKTAIL )
  1437.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
  1438.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
  1439.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
  1440.  
  1441.     PORT_START
  1442.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
  1443.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
  1444.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
  1445.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
  1446.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1447.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */
  1448.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1449.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1450.  
  1451.     PORT_START
  1452.     PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1453.  
  1454.     PORT_START
  1455.     PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
  1456.     PORT_DIPSETTING(    0x02, "2" )
  1457.     PORT_DIPSETTING(    0x03, "3" )
  1458.     PORT_DIPSETTING(    0x01, "4" )
  1459.     PORT_DIPSETTING(    0x00, "5" )
  1460.     PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) )
  1461.     PORT_DIPSETTING(    0x00, "Very Easy" )
  1462.     PORT_DIPSETTING(    0x08, "Easy" )
  1463.     PORT_DIPSETTING(    0x0c, "Normal" )
  1464.     PORT_DIPSETTING(    0x04, "Hard" )
  1465.     /* Coin Mode 1 */
  1466.     COIN_MODE_1
  1467.     /* Coin Mode 2, not supported yet */
  1468.     // COIN_MODE_2
  1469.  
  1470.     PORT_START
  1471.     PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  1472.     PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1473.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1474.     PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) )
  1475.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  1476.     PORT_DIPSETTING(    0x02, DEF_STR( On ) )
  1477.     PORT_DIPNAME( 0x04, 0x04, "Coin Mode" )
  1478.     PORT_DIPSETTING(    0x04, "Mode 1" )
  1479.     PORT_DIPSETTING(    0x00, "Mode 2" )
  1480.     PORT_DIPNAME( 0x18, 0x10, DEF_STR( Cabinet ) )
  1481.     PORT_DIPSETTING(    0x10, "Upright 1 Player" )
  1482.     PORT_DIPSETTING(    0x00, "Upright 2 Players" )
  1483.     PORT_DIPSETTING(    0x18, DEF_STR( Cocktail ) )
  1484. //    PORT_DIPSETTING(    0x08, "Upright 2 Players" )
  1485.     /* In stop mode, press 2 to stop and 1 to restart */
  1486.     PORT_BITX   ( 0x20, 0x20, IPT_DIPSWITCH_NAME | IPF_CHEAT, "Stop Mode", IP_KEY_NONE, IP_JOY_NONE )
  1487.     PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  1488.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1489.     PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
  1490.     PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1491.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1492.     PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  1493. INPUT_PORTS_END
  1494.  
  1495. INPUT_PORTS_START( hharry )
  1496.     PORT_START
  1497.     JOYSTICK_1
  1498.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 )
  1499.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )
  1500.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
  1501.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
  1502.  
  1503.     PORT_START
  1504.     JOYSTICK_2
  1505.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_COCKTAIL )
  1506.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
  1507.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
  1508.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
  1509.  
  1510.     PORT_START
  1511.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
  1512.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
  1513.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
  1514.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
  1515.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1516.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */
  1517.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1518.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1519.  
  1520.     PORT_START
  1521.     PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1522.  
  1523.     PORT_START
  1524.     PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
  1525.     PORT_DIPSETTING(    0x02, "2" )
  1526.     PORT_DIPSETTING(    0x03, "3" )
  1527.     PORT_DIPSETTING(    0x01, "4" )
  1528.     PORT_DIPSETTING(    0x00, "5" )
  1529.     PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) )
  1530.     PORT_DIPSETTING(    0x08, "Easy" )
  1531.     PORT_DIPSETTING(    0x0c, "Normal" )
  1532.     PORT_DIPSETTING(    0x04, "Hard" )
  1533.     PORT_DIPSETTING(    0x00, "Very Hard" )
  1534.     PORT_DIPNAME( 0x10, 0x10, "Limit N. of Continue?" )
  1535.     PORT_DIPSETTING(    0x00, DEF_STR( No ) )
  1536.     PORT_DIPSETTING(    0x10, DEF_STR( Yes ) )
  1537.     PORT_DIPNAME( 0x20, 0x20, "Allow Continue" )
  1538.     PORT_DIPSETTING(    0x00, DEF_STR( No ) )
  1539.     PORT_DIPSETTING(    0x20, DEF_STR( Yes ) )
  1540.     PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
  1541.     PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1542.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1543.     PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  1544.  
  1545.     PORT_START
  1546.     PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  1547.     PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1548.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1549.     PORT_DIPNAME( 0x06, 0x04, DEF_STR( Cabinet ) )
  1550.     PORT_DIPSETTING(    0x04, DEF_STR( Upright ) )
  1551.     PORT_DIPSETTING(    0x00, "Upright, separate controls" )
  1552.     // PORT_DIPSETTING(    0x02, "Upright, separate controls" )
  1553.     PORT_DIPSETTING(    0x06, DEF_STR( Cocktail ) )
  1554.     PORT_DIPNAME( 0x08, 0x08, "Coin Mode" )
  1555.     PORT_DIPSETTING(    0x08, "Mode 1" )
  1556.     PORT_DIPSETTING(    0x00, "Mode 2" )
  1557.     /* Coin Mode 1 */
  1558.     PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) )
  1559.     PORT_DIPSETTING(    0xa0, DEF_STR( 6C_1C ) )
  1560.     PORT_DIPSETTING(    0xb0, DEF_STR( 5C_1C ) )
  1561.     PORT_DIPSETTING(    0xc0, DEF_STR( 4C_1C ) )
  1562.     PORT_DIPSETTING(    0xd0, DEF_STR( 3C_1C ) )
  1563.     PORT_DIPSETTING(    0x10, "2 to start, 1 to continue" )
  1564.     PORT_DIPSETTING(    0xe0, DEF_STR( 2C_1C ) )
  1565.     PORT_DIPSETTING(    0x30, DEF_STR( 3C_2C ) )
  1566.     PORT_DIPSETTING(    0x20, DEF_STR( 4C_3C ) )
  1567.     PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
  1568.     PORT_DIPSETTING(    0x40, DEF_STR( 2C_3C ) )
  1569.     PORT_DIPSETTING(    0x90, DEF_STR( 1C_2C ) )
  1570.     PORT_DIPSETTING(    0x80, DEF_STR( 1C_3C ) )
  1571.     PORT_DIPSETTING(    0x70, DEF_STR( 1C_4C ) )
  1572.     PORT_DIPSETTING(    0x60, DEF_STR( 1C_5C ) )
  1573.     PORT_DIPSETTING(    0x50, DEF_STR( 1C_6C ) )
  1574.     PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
  1575.     /* Coin mode 2, not supported yet */
  1576.     // COIN_MODE_2
  1577. INPUT_PORTS_END
  1578.  
  1579. INPUT_PORTS_START( poundfor )
  1580.     PORT_START
  1581.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
  1582.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
  1583.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
  1584.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
  1585.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1586.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */
  1587.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1588.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1589.  
  1590.     PORT_START
  1591.     PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1592.  
  1593.     PORT_START
  1594.     PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
  1595.     PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1596.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1597.     PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
  1598.     PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
  1599.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1600.     PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
  1601.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1602.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1603.     PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
  1604.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1605.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1606.     PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
  1607.     PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  1608.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1609.     PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
  1610.     PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  1611.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1612.     PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
  1613.     PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1614.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1615.     PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  1616.  
  1617.     PORT_START
  1618.     PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
  1619.     PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1620.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1621.     PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
  1622.     PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
  1623.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1624.     PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
  1625.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1626.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1627.     PORT_DIPNAME( 0x08, 0x08, "Coin Mode" )
  1628.     PORT_DIPSETTING(    0x08, "Mode 1" )
  1629.     PORT_DIPSETTING(    0x00, "Mode 2" )
  1630.  
  1631.     /* Coin Mode 1 */
  1632.     PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) )
  1633.     PORT_DIPSETTING(    0xa0, DEF_STR( 6C_1C ) )
  1634.     PORT_DIPSETTING(    0xb0, DEF_STR( 5C_1C ) )
  1635.     PORT_DIPSETTING(    0xc0, DEF_STR( 4C_1C ) )
  1636.     PORT_DIPSETTING(    0xd0, DEF_STR( 3C_1C ) )
  1637.     PORT_DIPSETTING(    0xe0, DEF_STR( 2C_1C ) )
  1638.     PORT_DIPSETTING(    0x30, DEF_STR( 3C_2C ) )
  1639.     PORT_DIPSETTING(    0x20, DEF_STR( 4C_3C ) )
  1640.     PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
  1641.     PORT_DIPSETTING(    0x10, "1 Coin/1 Credit, 1 to continue" )
  1642.     PORT_DIPSETTING(    0x40, DEF_STR( 2C_3C ) )
  1643.     PORT_DIPSETTING(    0x90, DEF_STR( 1C_2C ) )
  1644.     PORT_DIPSETTING(    0x80, DEF_STR( 1C_3C ) )
  1645.     PORT_DIPSETTING(    0x70, DEF_STR( 1C_4C ) )
  1646.     PORT_DIPSETTING(    0x60, DEF_STR( 1C_5C ) )
  1647.     PORT_DIPSETTING(    0x50, DEF_STR( 1C_6C ) )
  1648.     PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
  1649.     /* Coin Mode 2, not supported yet */
  1650.     // COIN_MODE_2
  1651.  
  1652.     PORT_START
  1653.     PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_SPECIAL )    /* high bits of trackball X */
  1654.     PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER1 )
  1655.     PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER1 )
  1656.     PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  1657.  
  1658.     PORT_START
  1659.     PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_SPECIAL )    /* high bits of trackball X */
  1660.     PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_PLAYER2 )
  1661.     PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_PLAYER2 )
  1662.     PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  1663.  
  1664.     PORT_START
  1665.     PORT_ANALOG( 0xffff, 0x0000, IPT_TRACKBALL_X | IPF_PLAYER1, 50, 30, 0, 0 )
  1666.  
  1667.     PORT_START
  1668.     PORT_ANALOG( 0xffff, 0x0000, IPT_TRACKBALL_Y | IPF_REVERSE | IPF_PLAYER1, 50, 30, 0, 0 )
  1669.  
  1670.     PORT_START
  1671.     PORT_ANALOG( 0xffff, 0x0000, IPT_TRACKBALL_X | IPF_PLAYER2, 50, 30, 0, 0 )
  1672.  
  1673.     PORT_START
  1674.     PORT_ANALOG( 0xffff, 0x0000, IPT_TRACKBALL_Y | IPF_REVERSE | IPF_PLAYER2, 50, 30, 0, 0 )
  1675. INPUT_PORTS_END
  1676.  
  1677. INPUT_PORTS_START( airduel )
  1678.     PORT_START
  1679.     JOYSTICK_1
  1680.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 )
  1681.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )
  1682.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
  1683.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
  1684.  
  1685.     PORT_START
  1686.     JOYSTICK_2
  1687.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_COCKTAIL )
  1688.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
  1689.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
  1690.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
  1691.  
  1692.     PORT_START
  1693.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
  1694.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
  1695.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
  1696.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
  1697.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1698.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */
  1699.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1700.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1701.  
  1702.     PORT_START
  1703.     PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1704.  
  1705.     PORT_START
  1706.     PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
  1707.     PORT_DIPSETTING(    0x02, "2" )
  1708.     PORT_DIPSETTING(    0x03, "3" )
  1709.     PORT_DIPSETTING(    0x01, "4" )
  1710.     PORT_DIPSETTING(    0x00, "5" )
  1711.     PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Difficulty ) )
  1712.     PORT_DIPSETTING(    0x00, "Easy" )
  1713.     PORT_DIPSETTING(    0x08, "Easy" )
  1714.     PORT_DIPSETTING(    0x0c, "Normal" )
  1715.     PORT_DIPSETTING(    0x04, "Hard" )
  1716.     PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
  1717.     PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  1718.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1719.     PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
  1720.     PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
  1721.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1722.     PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
  1723.     PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1724.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1725.     PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  1726.  
  1727.     PORT_START
  1728.     PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  1729.     PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1730.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1731.     PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
  1732.     PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
  1733.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1734.     PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
  1735.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1736.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1737.     PORT_DIPNAME( 0x08, 0x08, "Coin Mode" )
  1738.     PORT_DIPSETTING(    0x08, "Mode 1" )
  1739.     PORT_DIPSETTING(    0x00, "Mode 2" )
  1740.  
  1741.     /* Coin Mode 1 */
  1742.     PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) )
  1743.     PORT_DIPSETTING(    0xa0, DEF_STR( 6C_1C ) )
  1744.     PORT_DIPSETTING(    0xb0, DEF_STR( 5C_1C ) )
  1745.     PORT_DIPSETTING(    0xc0, DEF_STR( 4C_1C ) )
  1746.     PORT_DIPSETTING(    0xd0, DEF_STR( 3C_1C ) )
  1747. //    PORT_DIPSETTING(    0x10, DEF_STR( Free-Play ) )  /* another free play */
  1748.     PORT_DIPSETTING(    0xe0, DEF_STR( 2C_1C ) )
  1749.     PORT_DIPSETTING(    0x30, DEF_STR( 3C_2C ) )
  1750.     PORT_DIPSETTING(    0x20, DEF_STR( 4C_3C ) )
  1751.     PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
  1752.     PORT_DIPSETTING(    0x40, DEF_STR( 2C_3C ) )
  1753.     PORT_DIPSETTING(    0x90, DEF_STR( 1C_2C ) )
  1754.     PORT_DIPSETTING(    0x80, DEF_STR( 1C_3C ) )
  1755.     PORT_DIPSETTING(    0x70, DEF_STR( 1C_4C ) )
  1756.     PORT_DIPSETTING(    0x60, DEF_STR( 1C_5C ) )
  1757.     PORT_DIPSETTING(    0x50, DEF_STR( 1C_6C ) )
  1758.     PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
  1759.     /* Coin Mode 2, not supported yet */
  1760.     // COIN_MODE_2
  1761. INPUT_PORTS_END
  1762.  
  1763. INPUT_PORTS_START( gallop )
  1764.     PORT_START
  1765.     JOYSTICK_1
  1766.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 )
  1767.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 )
  1768.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 )
  1769.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 )
  1770.  
  1771.     PORT_START
  1772.     JOYSTICK_2
  1773.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 | IPF_COCKTAIL )
  1774.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
  1775.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
  1776.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
  1777.  
  1778.     PORT_START
  1779.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
  1780.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )
  1781.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
  1782.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN2 )
  1783.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
  1784.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) /* 0x20 is another test mode */
  1785.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1786.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1787.  
  1788.     PORT_START
  1789.     PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
  1790.  
  1791.     PORT_START
  1792.     PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
  1793.     PORT_DIPSETTING(    0x02, "2" )
  1794.     PORT_DIPSETTING(    0x03, "3" )
  1795.     PORT_DIPSETTING(    0x01, "4" )
  1796.     PORT_DIPSETTING(    0x00, "5" )
  1797.     PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
  1798.     PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
  1799.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1800.     PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
  1801.     PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
  1802.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1803.     PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
  1804.     PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
  1805.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1806.     PORT_DIPNAME( 0x20, 0x20, "Allow Continue" )
  1807.     PORT_DIPSETTING(    0x00, DEF_STR( No ) )
  1808.     PORT_DIPSETTING(    0x20, DEF_STR( Yes ) )
  1809.     PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) )
  1810.     PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
  1811.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1812.     PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
  1813.  
  1814.     PORT_START
  1815.     PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) )
  1816.     PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
  1817.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  1818.     PORT_DIPNAME( 0x06, 0x00, DEF_STR( Cabinet ) )
  1819.     PORT_DIPSETTING(    0x00, "Upright 1 Player" )
  1820.     PORT_DIPSETTING(    0x02, "Upright 2 Players" )
  1821.     PORT_DIPSETTING(    0x06, DEF_STR( Cocktail ) )
  1822. //    PORT_DIPSETTING(    0x04, DEF_STR( Upright ) )
  1823.     PORT_DIPNAME( 0x08, 0x08, "Coin Mode" )
  1824.     PORT_DIPSETTING(    0x08, "Mode 1" )
  1825.     PORT_DIPSETTING(    0x00, "Mode 2" )
  1826.     /* Coin Mode 1 */
  1827.     PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coinage ) )
  1828.     PORT_DIPSETTING(    0xa0, DEF_STR( 6C_1C ) )
  1829.     PORT_DIPSETTING(    0xb0, DEF_STR( 5C_1C ) )
  1830.     PORT_DIPSETTING(    0xc0, DEF_STR( 4C_1C ) )
  1831.     PORT_DIPSETTING(    0xd0, DEF_STR( 3C_1C ) )
  1832.     PORT_DIPSETTING(    0x10, "2 to start, 1 to continue" )
  1833.     PORT_DIPSETTING(    0xe0, DEF_STR( 2C_1C ) )
  1834.     PORT_DIPSETTING(    0x30, DEF_STR( 3C_2C ) )
  1835.     PORT_DIPSETTING(    0x20, DEF_STR( 4C_3C ) )
  1836.     PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
  1837.     PORT_DIPSETTING(    0x40, DEF_STR( 2C_3C ) )
  1838.     PORT_DIPSETTING(    0x90, DEF_STR( 1C_2C ) )
  1839.     PORT_DIPSETTING(    0x80, DEF_STR( 1C_3C ) )
  1840.     PORT_DIPSETTING(    0x70, DEF_STR( 1C_4C ) )
  1841.     PORT_DIPSETTING(    0x60, DEF_STR( 1C_5C ) )
  1842.     PORT_DIPSETTING(    0x50, DEF_STR( 1C_6C ) )
  1843.     PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
  1844.     /* Coin mode 2, not supported yet */
  1845.     // COIN_MODE_2
  1846. INPUT_PORTS_END
  1847.  
  1848.  
  1849.  
  1850. static struct GfxLayout tilelayout =
  1851. {
  1852.     8,8,    /* 8*8 characters */
  1853.     RGN_FRAC(1,4),    /* NUM characters */
  1854.     4,    /* 4 bits per pixel */
  1855.     { RGN_FRAC(3,4), RGN_FRAC(2,4), RGN_FRAC(1,4), RGN_FRAC(0,4) },
  1856.     { 0, 1, 2, 3, 4, 5, 6, 7 },
  1857.     { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
  1858.     8*8    /* every char takes 8 consecutive bytes */
  1859. };
  1860.  
  1861. static struct GfxLayout spritelayout =
  1862. {
  1863.     16,16,    /* 16*16 sprites */
  1864.     RGN_FRAC(1,4),    /* NUM characters */
  1865.     4,    /* 4 bits per pixel */
  1866.     { RGN_FRAC(3,4), RGN_FRAC(2,4), RGN_FRAC(1,4), RGN_FRAC(0,4) },
  1867.     { 0, 1, 2, 3, 4, 5, 6, 7,
  1868.             16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 },
  1869.     { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
  1870.             8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
  1871.     32*8    /* every sprite takes 32 consecutive bytes */
  1872. };
  1873.  
  1874. static struct GfxDecodeInfo m72_gfxdecodeinfo[] =
  1875. {
  1876.     { REGION_GFX1, 0, &spritelayout,    0, 16 },
  1877.     { REGION_GFX2, 0, &tilelayout,    512, 16 },
  1878.     { REGION_GFX3, 0, &tilelayout,    512, 16 },
  1879.     { -1 } /* end of array */
  1880. };
  1881.  
  1882. static struct GfxDecodeInfo rtype2_gfxdecodeinfo[] =
  1883. {
  1884.     { REGION_GFX1, 0, &spritelayout,     0, 16 },
  1885.     { REGION_GFX2, 0, &tilelayout,     512, 16 },
  1886.     { -1 } /* end of array */
  1887. };
  1888.  
  1889. static struct GfxDecodeInfo majtitle_gfxdecodeinfo[] =
  1890. {
  1891.     { REGION_GFX1, 0, &spritelayout,     0, 16 },
  1892.     { REGION_GFX2, 0, &tilelayout,     512, 16 },
  1893.     { REGION_GFX3, 0, &spritelayout,     0, 16 },
  1894.     { -1 } /* end of array */
  1895. };
  1896.  
  1897.  
  1898.  
  1899. static struct YM2151interface ym2151_interface =
  1900. {
  1901.     1,            /* 1 chip */
  1902.     3579545,    /* 3.579545 MHz */
  1903.     { YM3012_VOL(100,MIXER_PAN_LEFT,100,MIXER_PAN_RIGHT) },
  1904.     { m72_ym2151_irq_handler },
  1905.     { 0 }
  1906. };
  1907.  
  1908. static struct DACinterface dac_interface =
  1909. {
  1910.     1,    /* 1 channel */
  1911.     { 40 }
  1912. };
  1913.  
  1914.  
  1915.  
  1916. static struct MachineDriver machine_driver_rtype =
  1917. {
  1918.     /* basic machine hardware */
  1919.     {
  1920.         {
  1921.             CPU_V30,
  1922.             16000000,    /* ?? */
  1923.             rtype_readmem,rtype_writemem,readport,writeport,
  1924.             m72_interrupt,256
  1925.         },
  1926.         {
  1927.             CPU_Z80 | CPU_AUDIO_CPU,
  1928.             3579545,    /* 3.579545 MHz */
  1929.             sound_readmem,sound_writemem,sound_readport,sound_writeport,
  1930.             ignore_interrupt,0    /* no NMIs unlike the other games */
  1931.                                 /* IRQs are generated by main Z80 and YM2151 */
  1932.         }
  1933.     },
  1934.     55, DEFAULT_60HZ_VBLANK_DURATION,    /* frames per second, vblank duration */
  1935.     1,    /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
  1936.     m72_init_machine,
  1937.  
  1938.     /* video hardware */
  1939.     512, 512, { 8*8, (64-8)*8-1, 16*8, (64-16)*8-1 },
  1940.     m72_gfxdecodeinfo,
  1941.     1024, 1024,
  1942.     0,
  1943.  
  1944.     VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
  1945.     m72_eof_callback,
  1946.     m72_vh_start,
  1947.     m72_vh_stop,
  1948.     m72_vh_screenrefresh,
  1949.  
  1950.     /* sound hardware */
  1951.     SOUND_SUPPORTS_STEREO,0,0,0,
  1952.     {
  1953.         {
  1954.             SOUND_YM2151,
  1955.             &ym2151_interface
  1956.         }
  1957.     }
  1958. };
  1959.  
  1960. static struct MachineDriver machine_driver_m72 =
  1961. {
  1962.     /* basic machine hardware */
  1963.     {
  1964.         {
  1965.             CPU_V30,
  1966.             16000000,    /* ?? */
  1967.             m72_readmem,m72_writemem,readport,writeport,
  1968.             m72_interrupt,256
  1969.         },
  1970.         {
  1971.             CPU_Z80 | CPU_AUDIO_CPU,
  1972.             3579545,    /* 3.579545 MHz */
  1973.             sound_readmem,sound_writemem,sound_readport,sound_writeport,
  1974.             nmi_interrupt,128    /* clocked by V1? (Vigilante) */
  1975.                                 /* IRQs are generated by main Z80 and YM2151 */
  1976.         }
  1977.     },
  1978.     55, DEFAULT_60HZ_VBLANK_DURATION,    /* frames per second, vblank duration */
  1979.     1,    /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
  1980.     m72_init_machine,
  1981.  
  1982.     /* video hardware */
  1983.     512, 512, { 8*8, (64-8)*8-1, 16*8, (64-16)*8-1 },
  1984.     m72_gfxdecodeinfo,
  1985.     1024, 1024,
  1986.     0,
  1987.  
  1988.     VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
  1989.     m72_eof_callback,
  1990.     m72_vh_start,
  1991.     m72_vh_stop,
  1992.     m72_vh_screenrefresh,
  1993.  
  1994.     /* sound hardware */
  1995.     SOUND_SUPPORTS_STEREO,0,0,0,
  1996.     {
  1997.         {
  1998.             SOUND_YM2151,
  1999.             &ym2151_interface
  2000.         },
  2001.         {
  2002.             SOUND_DAC,
  2003.             &dac_interface
  2004.         }
  2005.     }
  2006. };
  2007.  
  2008. static struct MachineDriver machine_driver_xmultipl =
  2009. {
  2010.     /* basic machine hardware */
  2011.     {
  2012.         {
  2013.             CPU_V30,
  2014.             16000000,    /* ?? */
  2015.             xmultipl_readmem,xmultipl_writemem,readport,xmultipl_writeport,
  2016.             m72_interrupt,256
  2017.         },
  2018.         {
  2019.             CPU_Z80 | CPU_AUDIO_CPU,
  2020.             3579545,    /* 3.579545 MHz */
  2021.             sound_readmem,sound_writemem,sound_readport,sound_writeport,
  2022.             nmi_interrupt,128    /* clocked by V1? (Vigilante) */
  2023.                                 /* IRQs are generated by main Z80 and YM2151 */
  2024.         }
  2025.     },
  2026.     55, DEFAULT_60HZ_VBLANK_DURATION,    /* frames per second, vblank duration */
  2027.     1,    /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
  2028.     xmultipl_init_machine,
  2029.  
  2030.     /* video hardware */
  2031.     512, 512, { 8*8, (64-8)*8-1, 16*8, (64-16)*8-1 },
  2032.     m72_gfxdecodeinfo,
  2033.     1024, 1024,
  2034.     0,
  2035.  
  2036.     VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
  2037.     m72_eof_callback,
  2038.     m72_vh_start,
  2039.     m72_vh_stop,
  2040.     m72_vh_screenrefresh,
  2041.  
  2042.     /* sound hardware */
  2043.     SOUND_SUPPORTS_STEREO,0,0,0,
  2044.     {
  2045.         {
  2046.             SOUND_YM2151,
  2047.             &ym2151_interface
  2048.         },
  2049.         {
  2050.             SOUND_DAC,
  2051.             &dac_interface
  2052.         }
  2053.     }
  2054. };
  2055.  
  2056. static struct MachineDriver machine_driver_dbreed =
  2057. {
  2058.     /* basic machine hardware */
  2059.     {
  2060.         {
  2061.             CPU_V30,
  2062.             16000000,    /* ?? */
  2063.             dbreed_readmem,dbreed_writemem,readport,xmultipl_writeport,
  2064.             m72_interrupt,256
  2065.         },
  2066.         {
  2067.             CPU_Z80 | CPU_AUDIO_CPU,
  2068.             3579545,    /* 3.579545 MHz */
  2069.             sound_readmem,sound_writemem,sound_readport,sound_writeport,
  2070.             nmi_interrupt,128    /* clocked by V1? (Vigilante) */
  2071.                                 /* IRQs are generated by main Z80 and YM2151 */
  2072.         }
  2073.     },
  2074.     55, DEFAULT_60HZ_VBLANK_DURATION,    /* frames per second, vblank duration */
  2075.     1,    /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
  2076.     xmultipl_init_machine,
  2077.  
  2078.     /* video hardware */
  2079.     512, 512, { 8*8, (64-8)*8-1, 16*8, (64-16)*8-1 },
  2080.     m72_gfxdecodeinfo,
  2081.     1024, 1024,
  2082.     0,
  2083.  
  2084.     VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
  2085.     m72_eof_callback,
  2086.     dbreed_vh_start,
  2087.     m72_vh_stop,
  2088.     dbreed_vh_screenrefresh,
  2089.  
  2090.     /* sound hardware */
  2091.     SOUND_SUPPORTS_STEREO,0,0,0,
  2092.     {
  2093.         {
  2094.             SOUND_YM2151,
  2095.             &ym2151_interface
  2096.         },
  2097.         {
  2098.             SOUND_DAC,
  2099.             &dac_interface
  2100.         }
  2101.     }
  2102. };
  2103.  
  2104. static struct MachineDriver machine_driver_rtype2 =
  2105. {
  2106.     /* basic machine hardware */
  2107.     {
  2108.         {
  2109.             CPU_V30,
  2110.             16000000,    /* ?? */
  2111.             rtype2_readmem,rtype2_writemem,readport,rtype2_writeport,
  2112.             m72_interrupt,256
  2113.         },
  2114.         {
  2115.             CPU_Z80 | CPU_AUDIO_CPU,
  2116.             3579545,    /* 3.579545 MHz */
  2117.             sound_readmem,sound_writemem,rtype2_sound_readport,rtype2_sound_writeport,
  2118.             nmi_interrupt,128    /* clocked by V1? (Vigilante) */
  2119.                                 /* IRQs are generated by main Z80 and YM2151 */
  2120.         }
  2121.     },
  2122.     55, DEFAULT_60HZ_VBLANK_DURATION,    /* frames per second, vblank duration */
  2123.     1,    /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
  2124.     m72_init_machine,
  2125.  
  2126.     /* video hardware */
  2127.     512, 512, { 8*8, (64-8)*8-1, 16*8, (64-16)*8-1 },
  2128.     rtype2_gfxdecodeinfo,
  2129.     1024, 1024,
  2130.     0,
  2131.  
  2132.     VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
  2133.     m72_eof_callback,
  2134.     rtype2_vh_start,
  2135.     m72_vh_stop,
  2136.     m72_vh_screenrefresh,
  2137.  
  2138.     /* sound hardware */
  2139.     SOUND_SUPPORTS_STEREO,0,0,0,
  2140.     {
  2141.         {
  2142.             SOUND_YM2151,
  2143.             &ym2151_interface
  2144.         },
  2145.         {
  2146.             SOUND_DAC,
  2147.             &dac_interface
  2148.         }
  2149.     }
  2150. };
  2151.  
  2152. static struct MachineDriver machine_driver_majtitle =
  2153. {
  2154.     /* basic machine hardware */
  2155.     {
  2156.         {
  2157.             CPU_V30,
  2158.             16000000,    /* ?? */
  2159.             majtitle_readmem,majtitle_writemem,readport,rtype2_writeport,
  2160.             m72_interrupt,256
  2161.         },
  2162.         {
  2163.             CPU_Z80 | CPU_AUDIO_CPU,
  2164.             3579545,    /* 3.579545 MHz */
  2165.             sound_readmem,sound_writemem,rtype2_sound_readport,rtype2_sound_writeport,
  2166.             nmi_interrupt,128    /* clocked by V1? (Vigilante) */
  2167.                                 /* IRQs are generated by main Z80 and YM2151 */
  2168.         }
  2169.     },
  2170.     55, DEFAULT_60HZ_VBLANK_DURATION,    /* frames per second, vblank duration */
  2171.     1,    /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
  2172.     m72_init_machine,
  2173.  
  2174.     /* video hardware */
  2175.     512, 512, { 8*8, (64-8)*8-1, 16*8, (64-16)*8-1 },
  2176.     majtitle_gfxdecodeinfo,
  2177.     1024, 1024,
  2178.     0,
  2179.  
  2180.     VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
  2181.     m72_eof_callback,
  2182.     majtitle_vh_start,
  2183.     m72_vh_stop,
  2184.     majtitle_vh_screenrefresh,
  2185.  
  2186.     /* sound hardware */
  2187.     SOUND_SUPPORTS_STEREO,0,0,0,
  2188.     {
  2189.         {
  2190.             SOUND_YM2151,
  2191.             &ym2151_interface
  2192.         },
  2193.         {
  2194.             SOUND_DAC,
  2195.             &dac_interface
  2196.         }
  2197.     }
  2198. };
  2199.  
  2200. static struct MachineDriver machine_driver_hharry =
  2201. {
  2202.     /* basic machine hardware */
  2203.     {
  2204.         {
  2205.             CPU_V30,
  2206.             16000000,    /* ?? */
  2207.             hharry_readmem,hharry_writemem,readport,hharry_writeport,
  2208.             m72_interrupt,256
  2209.         },
  2210.         {
  2211.             CPU_Z80 | CPU_AUDIO_CPU,
  2212.             3579545,    /* 3.579545 MHz */
  2213.             sound_readmem,sound_writemem,rtype2_sound_readport,rtype2_sound_writeport,
  2214.             nmi_interrupt,128    /* clocked by V1? (Vigilante) */
  2215.                                 /* IRQs are generated by main Z80 and YM2151 */
  2216.         }
  2217.     },
  2218.     55, DEFAULT_60HZ_VBLANK_DURATION,    /* frames per second, vblank duration */
  2219.     1,    /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
  2220.     xmultipl_init_machine,
  2221.  
  2222.     /* video hardware */
  2223.     512, 512, { 8*8, (64-8)*8-1, 16*8, (64-16)*8-1 },
  2224.     rtype2_gfxdecodeinfo,
  2225.     1024, 1024,
  2226.     0,
  2227.  
  2228.     VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
  2229.     m72_eof_callback,
  2230.     hharry_vh_start,
  2231.     m72_vh_stop,
  2232.     m72_vh_screenrefresh,
  2233.  
  2234.     /* sound hardware */
  2235.     SOUND_SUPPORTS_STEREO,0,0,0,
  2236.     {
  2237.         {
  2238.             SOUND_YM2151,
  2239.             &ym2151_interface
  2240.         },
  2241.         {
  2242.             SOUND_DAC,
  2243.             &dac_interface
  2244.         }
  2245.     }
  2246. };
  2247.  
  2248. static struct MachineDriver machine_driver_hharryu =
  2249. {
  2250.     /* basic machine hardware */
  2251.     {
  2252.         {
  2253.             CPU_V30,
  2254.             16000000,    /* ?? */
  2255.             hharryu_readmem,hharryu_writemem,readport,rtype2_writeport,
  2256.             m72_interrupt,256
  2257.         },
  2258.         {
  2259.             CPU_Z80 | CPU_AUDIO_CPU,
  2260.             3579545,    /* 3.579545 MHz */
  2261.             sound_readmem,sound_writemem,rtype2_sound_readport,rtype2_sound_writeport,
  2262.             nmi_interrupt,128    /* clocked by V1? (Vigilante) */
  2263.                                 /* IRQs are generated by main Z80 and YM2151 */
  2264.         }
  2265.     },
  2266.     55, DEFAULT_60HZ_VBLANK_DURATION,    /* frames per second, vblank duration */
  2267.     1,    /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
  2268.     xmultipl_init_machine,
  2269.  
  2270.     /* video hardware */
  2271.     512, 512, { 8*8, (64-8)*8-1, 16*8, (64-16)*8-1 },
  2272.     rtype2_gfxdecodeinfo,
  2273.     1024, 1024,
  2274.     0,
  2275.  
  2276.     VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
  2277.     m72_eof_callback,
  2278.     rtype2_vh_start,
  2279.     m72_vh_stop,
  2280.     m72_vh_screenrefresh,
  2281.  
  2282.     /* sound hardware */
  2283.     SOUND_SUPPORTS_STEREO,0,0,0,
  2284.     {
  2285.         {
  2286.             SOUND_YM2151,
  2287.             &ym2151_interface
  2288.         },
  2289.         {
  2290.             SOUND_DAC,
  2291.             &dac_interface
  2292.         }
  2293.     }
  2294. };
  2295.  
  2296. static struct MachineDriver machine_driver_poundfor =
  2297. {
  2298.     /* basic machine hardware */
  2299.     {
  2300.         {
  2301.             CPU_V30,
  2302.             16000000,    /* ?? */
  2303.             rtype2_readmem,rtype2_writemem,poundfor_readport,rtype2_writeport,
  2304.             m72_interrupt,256
  2305.         },
  2306.         {
  2307.             CPU_Z80 | CPU_AUDIO_CPU,
  2308.             3579545,    /* 3.579545 MHz */
  2309.             sound_readmem,sound_writemem,poundfor_sound_readport,poundfor_sound_writeport,
  2310.             nmi_interrupt,128    /* clocked by V1? (Vigilante) */
  2311.                                 /* IRQs are generated by main Z80 and YM2151 */
  2312.         }
  2313.     },
  2314.     55, DEFAULT_60HZ_VBLANK_DURATION,    /* frames per second, vblank duration */
  2315.     1,    /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
  2316.     poundfor_init_machine,
  2317.  
  2318.     /* video hardware */
  2319.     512, 512, { 8*8, (64-8)*8-1, 16*8, (64-16)*8-1 },
  2320.     rtype2_gfxdecodeinfo,
  2321.     1024, 1024,
  2322.     0,
  2323.  
  2324.     VIDEO_TYPE_RASTER | VIDEO_MODIFIES_PALETTE,
  2325.     m72_eof_callback,
  2326.     rtype2_vh_start,
  2327.     m72_vh_stop,
  2328.     m72_vh_screenrefresh,
  2329.  
  2330.     /* sound hardware */
  2331.     SOUND_SUPPORTS_STEREO,0,0,0,
  2332.     {
  2333.         {
  2334.             SOUND_YM2151,
  2335.             &ym2151_interface
  2336.         },
  2337.         {
  2338.             SOUND_DAC,
  2339.             &dac_interface
  2340.         }
  2341.     }
  2342. };
  2343.  
  2344.  
  2345.  
  2346. /***************************************************************************
  2347.  
  2348.   Game driver(s)
  2349.  
  2350. ***************************************************************************/
  2351.  
  2352. ROM_START( rtype )
  2353.     ROM_REGION( 0x100000, REGION_CPU1 )
  2354.     ROM_LOAD_V20_EVEN( "rt_r-h0-.bin", 0x00000, 0x10000, 0xc2940df2 )
  2355.     ROM_LOAD_V20_ODD ( "rt_r-l0-.bin", 0x00000, 0x10000, 0x858cc0f6 )
  2356.     ROM_LOAD_V20_EVEN( "rt_r-h1-.bin", 0x20000, 0x10000, 0x5bcededa )
  2357.     ROM_RELOAD_V20_EVEN(               0xe0000, 0x10000 )
  2358.     ROM_LOAD_V20_ODD ( "rt_r-l1-.bin", 0x20000, 0x10000, 0x4821141c )
  2359.     ROM_RELOAD_V20_ODD (               0xe0000, 0x10000 )
  2360.  
  2361.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  2362.     /* no ROM, program will be copied by the main CPU */
  2363.  
  2364.     ROM_REGION( 0x80000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  2365.     ROM_LOAD( "cpu-00.bin",   0x00000, 0x10000, 0xdad53bc0 )    /* sprites */
  2366.     ROM_LOAD( "cpu-01.bin",   0x10000, 0x10000, 0xb28d1a60 )
  2367.     ROM_LOAD( "cpu-10.bin",   0x20000, 0x10000, 0xd6a66298 )
  2368.     ROM_LOAD( "cpu-11.bin",   0x30000, 0x10000, 0xbb182f1a )
  2369.     ROM_LOAD( "cpu-20.bin",   0x40000, 0x10000, 0xfc247c8a )
  2370.     ROM_LOAD( "cpu-21.bin",   0x50000, 0x10000, 0x5b41f5f3 )
  2371.     ROM_LOAD( "cpu-30.bin",   0x60000, 0x10000, 0xeb02a1cb )
  2372.     ROM_LOAD( "cpu-31.bin",   0x70000, 0x10000, 0x2bec510a )
  2373.  
  2374.     ROM_REGION( 0x20000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  2375.     ROM_LOAD( "cpu-a0.bin",   0x00000, 0x08000, 0x4e212fb0 )    /* tiles #1 */
  2376.     ROM_LOAD( "cpu-a1.bin",   0x08000, 0x08000, 0x8a65bdff )
  2377.     ROM_LOAD( "cpu-a2.bin",   0x10000, 0x08000, 0x5a4ae5b9 )
  2378.     ROM_LOAD( "cpu-a3.bin",   0x18000, 0x08000, 0x73327606 )
  2379.  
  2380.     ROM_REGION( 0x20000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  2381.     ROM_LOAD( "cpu-b0.bin",   0x00000, 0x08000, 0xa7b17491 )    /* tiles #2 */
  2382.     ROM_LOAD( "cpu-b1.bin",   0x08000, 0x08000, 0xb9709686 )
  2383.     ROM_LOAD( "cpu-b2.bin",   0x10000, 0x08000, 0x433b229a )
  2384.     ROM_LOAD( "cpu-b3.bin",   0x18000, 0x08000, 0xad89b072 )
  2385. ROM_END
  2386.  
  2387. ROM_START( rtypepj )
  2388.     ROM_REGION( 0x100000, REGION_CPU1 )
  2389.     ROM_LOAD_V20_EVEN( "db_b1.bin",   0x00000, 0x10000, 0xc1865141 )
  2390.     ROM_LOAD_V20_ODD ( "db_a1.bin",   0x00000, 0x10000, 0x5ad2bd90 )
  2391.     ROM_LOAD_V20_EVEN( "db_b2.bin",   0x20000, 0x10000, 0xb4f6407e )
  2392.     ROM_RELOAD_V20_EVEN(              0xe0000, 0x10000 )
  2393.     ROM_LOAD_V20_ODD ( "db_a2.bin",   0x20000, 0x10000, 0x6098d86f )
  2394.     ROM_RELOAD_V20_ODD (              0xe0000, 0x10000 )
  2395.  
  2396.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  2397.     /* no ROM, program will be copied by the main CPU */
  2398.  
  2399.     ROM_REGION( 0x80000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  2400.     ROM_LOAD( "cpu-00.bin",   0x00000, 0x10000, 0xdad53bc0 )    /* sprites */
  2401.     ROM_LOAD( "cpu-01.bin",   0x10000, 0x10000, 0xb28d1a60 )
  2402.     ROM_LOAD( "cpu-10.bin",   0x20000, 0x10000, 0xd6a66298 )
  2403.     ROM_LOAD( "cpu-11.bin",   0x30000, 0x10000, 0xbb182f1a )
  2404.     ROM_LOAD( "cpu-20.bin",   0x40000, 0x10000, 0xfc247c8a )
  2405.     ROM_LOAD( "cpu-21.bin",   0x50000, 0x10000, 0x5b41f5f3 )
  2406.     ROM_LOAD( "cpu-30.bin",   0x60000, 0x10000, 0xeb02a1cb )
  2407.     ROM_LOAD( "cpu-31.bin",   0x70000, 0x10000, 0x2bec510a )
  2408.  
  2409.     ROM_REGION( 0x20000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  2410.     ROM_LOAD( "cpu-a0.bin",   0x00000, 0x08000, 0x4e212fb0 )    /* tiles #1 */
  2411.     ROM_LOAD( "cpu-a1.bin",   0x08000, 0x08000, 0x8a65bdff )
  2412.     ROM_LOAD( "cpu-a2.bin",   0x10000, 0x08000, 0x5a4ae5b9 )
  2413.     ROM_LOAD( "cpu-a3.bin",   0x18000, 0x08000, 0x73327606 )
  2414.  
  2415.     ROM_REGION( 0x20000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  2416.     ROM_LOAD( "cpu-b0.bin",   0x00000, 0x08000, 0xa7b17491 )    /* tiles #2 */
  2417.     ROM_LOAD( "cpu-b1.bin",   0x08000, 0x08000, 0xb9709686 )
  2418.     ROM_LOAD( "cpu-b2.bin",   0x10000, 0x08000, 0x433b229a )
  2419.     ROM_LOAD( "cpu-b3.bin",   0x18000, 0x08000, 0xad89b072 )
  2420. ROM_END
  2421.  
  2422. ROM_START( rtypeu )
  2423.     ROM_REGION( 0x100000, REGION_CPU1 )
  2424.     ROM_LOAD_V20_EVEN( "aud-h0.bin",   0x00000, 0x10000, 0x36008a4e )
  2425.     ROM_LOAD_V20_ODD ( "aud-l0.bin",   0x00000, 0x10000, 0x4aaa668e )
  2426.     ROM_LOAD_V20_EVEN( "aud-h1.bin",   0x20000, 0x10000, 0x7ebb2a53 )
  2427.     ROM_RELOAD_V20_EVEN(               0xe0000, 0x10000 )
  2428.     ROM_LOAD_V20_ODD ( "aud-l1.bin",   0x20000, 0x10000, 0xc28b103b )
  2429.     ROM_RELOAD_V20_ODD (               0xe0000, 0x10000 )
  2430.  
  2431.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  2432.     /* no ROM, program will be copied by the main CPU */
  2433.  
  2434.     ROM_REGION( 0x80000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  2435.     ROM_LOAD( "cpu-00.bin",   0x00000, 0x10000, 0xdad53bc0 )    /* sprites */
  2436.     ROM_LOAD( "cpu-01.bin",   0x10000, 0x10000, 0xb28d1a60 )
  2437.     ROM_LOAD( "cpu-10.bin",   0x20000, 0x10000, 0xd6a66298 )
  2438.     ROM_LOAD( "cpu-11.bin",   0x30000, 0x10000, 0xbb182f1a )
  2439.     ROM_LOAD( "cpu-20.bin",   0x40000, 0x10000, 0xfc247c8a )
  2440.     ROM_LOAD( "cpu-21.bin",   0x50000, 0x10000, 0x5b41f5f3 )
  2441.     ROM_LOAD( "cpu-30.bin",   0x60000, 0x10000, 0xeb02a1cb )
  2442.     ROM_LOAD( "cpu-31.bin",   0x70000, 0x10000, 0x2bec510a )
  2443.  
  2444.     ROM_REGION( 0x20000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  2445.     ROM_LOAD( "cpu-a0.bin",   0x00000, 0x08000, 0x4e212fb0 )    /* tiles #1 */
  2446.     ROM_LOAD( "cpu-a1.bin",   0x08000, 0x08000, 0x8a65bdff )
  2447.     ROM_LOAD( "cpu-a2.bin",   0x10000, 0x08000, 0x5a4ae5b9 )
  2448.     ROM_LOAD( "cpu-a3.bin",   0x18000, 0x08000, 0x73327606 )
  2449.  
  2450.     ROM_REGION( 0x20000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  2451.     ROM_LOAD( "cpu-b0.bin",   0x00000, 0x08000, 0xa7b17491 )    /* tiles #2 */
  2452.     ROM_LOAD( "cpu-b1.bin",   0x08000, 0x08000, 0xb9709686 )
  2453.     ROM_LOAD( "cpu-b2.bin",   0x10000, 0x08000, 0x433b229a )
  2454.     ROM_LOAD( "cpu-b3.bin",   0x18000, 0x08000, 0xad89b072 )
  2455. ROM_END
  2456.  
  2457. ROM_START( bchopper )
  2458.     ROM_REGION( 0x100000, REGION_CPU1 )
  2459.     ROM_LOAD_V20_EVEN( "c-h0-b.rom",   0x00000, 0x10000, 0xf2feab16 )
  2460.     ROM_LOAD_V20_ODD ( "c-l0-b.rom",   0x00000, 0x10000, 0x9f887096 )
  2461.     ROM_LOAD_V20_EVEN( "c-h1-b.rom",   0x20000, 0x10000, 0xa995d64f )
  2462.     ROM_LOAD_V20_ODD ( "c-l1-b.rom",   0x20000, 0x10000, 0x41dda999 )
  2463.     ROM_LOAD_V20_EVEN( "c-h3-b.rom",   0x60000, 0x10000, 0xab9451ca )
  2464.     ROM_RELOAD_V20_EVEN(               0xe0000, 0x10000 )
  2465.     ROM_LOAD_V20_ODD ( "c-l3-b.rom",   0x60000, 0x10000, 0x11562221 )
  2466.     ROM_RELOAD_V20_ODD (               0xe0000, 0x10000 )
  2467.  
  2468.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  2469.     /* no ROM, program will be copied by the main CPU */
  2470.  
  2471.     ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  2472.     ROM_LOAD( "c-00-a.rom",   0x00000, 0x10000, 0xf6e6e660 )    /* sprites */
  2473.     ROM_LOAD( "c-01-b.rom",   0x10000, 0x10000, 0x708cdd37 )
  2474.     ROM_LOAD( "c-10-a.rom",   0x20000, 0x10000, 0x292c8520 )
  2475.     ROM_LOAD( "c-11-b.rom",   0x30000, 0x10000, 0x20904cf3 )
  2476.     ROM_LOAD( "c-20-a.rom",   0x40000, 0x10000, 0x1ab50c23 )
  2477.     ROM_LOAD( "c-21-b.rom",   0x50000, 0x10000, 0xc823d34c )
  2478.     ROM_LOAD( "c-30-a.rom",   0x60000, 0x10000, 0x11f6c56b )
  2479.     ROM_LOAD( "c-31-b.rom",   0x70000, 0x10000, 0x23134ec5 )
  2480.  
  2481.     ROM_REGION( 0x040000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  2482.     ROM_LOAD( "b-a0-b.rom",   0x00000, 0x10000, 0xe46ed7bf )    /* tiles #1 */
  2483.     ROM_LOAD( "b-a1-b.rom",   0x10000, 0x10000, 0x590605ff )
  2484.     ROM_LOAD( "b-a2-b.rom",   0x20000, 0x10000, 0xf8158226 )
  2485.     ROM_LOAD( "b-a3-b.rom",   0x30000, 0x10000, 0x0f07b9b7 )
  2486.  
  2487.     ROM_REGION( 0x040000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  2488.     ROM_LOAD( "b-b0-.rom",    0x00000, 0x10000, 0xb5b95776 )    /* tiles #2 */
  2489.     ROM_LOAD( "b-b1-.rom",    0x10000, 0x10000, 0x74ca16ee )
  2490.     ROM_LOAD( "b-b2-.rom",    0x20000, 0x10000, 0xb82cca04 )
  2491.     ROM_LOAD( "b-b3-.rom",    0x30000, 0x10000, 0xa7afc920 )
  2492.  
  2493.     ROM_REGION( 0x10000, REGION_SOUND1 )    /* samples */
  2494.     ROM_LOAD( "c-v0-b.rom",   0x00000, 0x10000, 0xd0c27e58 )
  2495. ROM_END
  2496.  
  2497. ROM_START( mrheli )
  2498.     ROM_REGION( 0x100000, REGION_CPU1 )
  2499.     ROM_LOAD_V20_EVEN( "mh-c-h0.bin",  0x00000, 0x10000, 0xe2ca5646 )
  2500.     ROM_LOAD_V20_ODD ( "mh-c-l0.bin",  0x00000, 0x10000, 0x643e23cd )
  2501.     ROM_LOAD_V20_EVEN( "mh-c-h1.bin",  0x20000, 0x10000, 0x8974e84d )
  2502.     ROM_LOAD_V20_ODD ( "mh-c-l1.bin",  0x20000, 0x10000, 0x5f8bda69 )
  2503.     ROM_LOAD_V20_EVEN( "mh-c-h3.bin",  0x60000, 0x10000, 0x143f596e )
  2504.     ROM_RELOAD_V20_EVEN(               0xe0000, 0x10000 )
  2505.     ROM_LOAD_V20_ODD ( "mh-c-l3.bin",  0x60000, 0x10000, 0xc0982536 )
  2506.     ROM_RELOAD_V20_ODD (               0xe0000, 0x10000 )
  2507.  
  2508.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  2509.     /* no ROM, program will be copied by the main CPU */
  2510.  
  2511.     ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  2512.     ROM_LOAD( "mh-c-00.bin",  0x00000, 0x20000, 0xdec4e121 )    /* sprites */
  2513.     ROM_LOAD( "mh-c-10.bin",  0x20000, 0x20000, 0x7aaa151e )
  2514.     ROM_LOAD( "mh-c-20.bin",  0x40000, 0x20000, 0xeae0de74 )
  2515.     ROM_LOAD( "mh-c-30.bin",  0x60000, 0x20000, 0x01d5052f )
  2516.  
  2517.     ROM_REGION( 0x040000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  2518.     ROM_LOAD( "mh-b-a0.bin",  0x00000, 0x10000, 0x6a0db256 )    /* tiles #1 */
  2519.     ROM_LOAD( "mh-b-a1.bin",  0x10000, 0x10000, 0x14ec9795 )
  2520.     ROM_LOAD( "mh-b-a2.bin",  0x20000, 0x10000, 0xdfcb510e )
  2521.     ROM_LOAD( "mh-b-a3.bin",  0x30000, 0x10000, 0x957e329b )
  2522.  
  2523.     ROM_REGION( 0x040000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  2524.     ROM_LOAD( "b-b0-.rom",    0x00000, 0x10000, 0xb5b95776 )    /* tiles #2 */
  2525.     ROM_LOAD( "b-b1-.rom",    0x10000, 0x10000, 0x74ca16ee )
  2526.     ROM_LOAD( "b-b2-.rom",    0x20000, 0x10000, 0xb82cca04 )
  2527.     ROM_LOAD( "b-b3-.rom",    0x30000, 0x10000, 0xa7afc920 )
  2528.  
  2529.     ROM_REGION( 0x10000, REGION_SOUND1 )    /* samples */
  2530.     ROM_LOAD( "c-v0-b.rom",   0x00000, 0x10000, 0xd0c27e58 )
  2531. ROM_END
  2532.  
  2533. ROM_START( nspirit )
  2534.     ROM_REGION( 0x100000, REGION_CPU1 )
  2535.     ROM_LOAD_V20_EVEN( "nin-c-h0.rom", 0x00000, 0x10000, 0x035692fa )
  2536.     ROM_LOAD_V20_ODD ( "nin-c-l0.rom", 0x00000, 0x10000, 0x9a405898 )
  2537.     ROM_LOAD_V20_EVEN( "nin-c-h1.rom", 0x20000, 0x10000, 0xcbc10586 )
  2538.     ROM_LOAD_V20_ODD ( "nin-c-l1.rom", 0x20000, 0x10000, 0xb75c9a4d )
  2539.     ROM_LOAD_V20_EVEN( "nin-c-h2.rom", 0x40000, 0x10000, 0x8ad818fa )
  2540.     ROM_LOAD_V20_ODD ( "nin-c-l2.rom", 0x40000, 0x10000, 0xc52ca78c )
  2541.     ROM_LOAD_V20_EVEN( "nin-c-h3.rom", 0x60000, 0x10000, 0x501104ef )
  2542.     ROM_RELOAD_V20_EVEN(               0xe0000, 0x10000 )
  2543.     ROM_LOAD_V20_ODD ( "nin-c-l3.rom", 0x60000, 0x10000, 0xfd7408b8 )
  2544.     ROM_RELOAD_V20_ODD (               0xe0000, 0x10000 )
  2545.  
  2546.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  2547.     /* no ROM, program will be copied by the main CPU */
  2548.  
  2549.     ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  2550.     ROM_LOAD( "nin-r00.rom",  0x00000, 0x20000, 0x5f61d30b )    /* sprites */
  2551.     ROM_LOAD( "nin-r10.rom",  0x20000, 0x20000, 0x0caad107 )
  2552.     ROM_LOAD( "nin-r20.rom",  0x40000, 0x20000, 0xef3617d3 )
  2553.     ROM_LOAD( "nin-r30.rom",  0x60000, 0x20000, 0x175d2a24 )
  2554.  
  2555.     ROM_REGION( 0x040000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  2556.     ROM_LOAD( "nin-b-a0.rom", 0x00000, 0x10000, 0x63f8f658 )    /* tiles #1 */
  2557.     ROM_LOAD( "nin-b-a1.rom", 0x10000, 0x10000, 0x75eb8306 )
  2558.     ROM_LOAD( "nin-b-a2.rom", 0x20000, 0x10000, 0xdf532172 )
  2559.     ROM_LOAD( "nin-b-a3.rom", 0x30000, 0x10000, 0x4dedd64c )
  2560.  
  2561.     ROM_REGION( 0x040000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  2562.     ROM_LOAD( "nin-b0.rom",   0x00000, 0x10000, 0x1b0e08a6 )    /* tiles #2 */
  2563.     ROM_LOAD( "nin-b1.rom",   0x10000, 0x10000, 0x728727f0 )
  2564.     ROM_LOAD( "nin-b2.rom",   0x20000, 0x10000, 0xf87efd75 )
  2565.     ROM_LOAD( "nin-b3.rom",   0x30000, 0x10000, 0x98856cb4 )
  2566.  
  2567.     ROM_REGION( 0x10000, REGION_SOUND1 )    /* samples */
  2568.     ROM_LOAD( "nin-v0.rom",   0x00000, 0x10000, 0xa32e8caf )
  2569. ROM_END
  2570.  
  2571. ROM_START( nspiritj )
  2572.     ROM_REGION( 0x100000, REGION_CPU1 )
  2573.     ROM_LOAD_V20_EVEN( "c-h0",         0x00000, 0x10000, 0x8603fab2 )
  2574.     ROM_LOAD_V20_ODD ( "c-l0",         0x00000, 0x10000, 0xe520fa35 )
  2575.     ROM_LOAD_V20_EVEN( "nin-c-h1.rom", 0x20000, 0x10000, 0xcbc10586 )
  2576.     ROM_LOAD_V20_ODD ( "nin-c-l1.rom", 0x20000, 0x10000, 0xb75c9a4d )
  2577.     ROM_LOAD_V20_EVEN( "nin-c-h2.rom", 0x40000, 0x10000, 0x8ad818fa )
  2578.     ROM_LOAD_V20_ODD ( "nin-c-l2.rom", 0x40000, 0x10000, 0xc52ca78c )
  2579.     ROM_LOAD_V20_EVEN( "c-h3",         0x60000, 0x10000, 0x95b63a61 )
  2580.     ROM_RELOAD_V20_EVEN(               0xe0000, 0x10000 )
  2581.     ROM_LOAD_V20_ODD ( "c-l3",         0x60000, 0x10000, 0xe754a87a )
  2582.     ROM_RELOAD_V20_ODD (               0xe0000, 0x10000 )
  2583.  
  2584.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  2585.     /* no ROM, program will be copied by the main CPU */
  2586.  
  2587.     ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  2588.     ROM_LOAD( "nin-r00.rom",  0x00000, 0x20000, 0x5f61d30b )    /* sprites */
  2589.     ROM_LOAD( "nin-r10.rom",  0x20000, 0x20000, 0x0caad107 )
  2590.     ROM_LOAD( "nin-r20.rom",  0x40000, 0x20000, 0xef3617d3 )
  2591.     ROM_LOAD( "nin-r30.rom",  0x60000, 0x20000, 0x175d2a24 )
  2592.  
  2593.     ROM_REGION( 0x040000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  2594.     ROM_LOAD( "nin-b-a0.rom", 0x00000, 0x10000, 0x63f8f658 )    /* tiles #1 */
  2595.     ROM_LOAD( "nin-b-a1.rom", 0x10000, 0x10000, 0x75eb8306 )
  2596.     ROM_LOAD( "nin-b-a2.rom", 0x20000, 0x10000, 0xdf532172 )
  2597.     ROM_LOAD( "nin-b-a3.rom", 0x30000, 0x10000, 0x4dedd64c )
  2598.  
  2599.     ROM_REGION( 0x040000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  2600.     ROM_LOAD( "nin-b0.rom",   0x00000, 0x10000, 0x1b0e08a6 )    /* tiles #2 */
  2601.     ROM_LOAD( "nin-b1.rom",   0x10000, 0x10000, 0x728727f0 )
  2602.     ROM_LOAD( "nin-b2.rom",   0x20000, 0x10000, 0xf87efd75 )
  2603.     ROM_LOAD( "nin-b3.rom",   0x30000, 0x10000, 0x98856cb4 )
  2604.  
  2605.     ROM_REGION( 0x10000, REGION_SOUND1 )    /* samples */
  2606.     ROM_LOAD( "nin-v0.rom",   0x00000, 0x10000, 0xa32e8caf )
  2607. ROM_END
  2608.  
  2609. ROM_START( imgfight )
  2610.     ROM_REGION( 0x100000, REGION_CPU1 )
  2611.     ROM_LOAD_V20_EVEN( "if-c-h0.bin",  0x00000, 0x10000, 0x592d2d80 )
  2612.     ROM_LOAD_V20_ODD ( "if-c-l0.bin",  0x00000, 0x10000, 0x61f89056 )
  2613.     ROM_LOAD_V20_EVEN( "if-c-h3.bin",  0x40000, 0x20000, 0xea030541 )
  2614.     ROM_RELOAD_V20_EVEN(               0xc0000, 0x20000 )
  2615.     ROM_LOAD_V20_ODD ( "if-c-l3.bin",  0x40000, 0x20000, 0xc66ae348 )
  2616.     ROM_RELOAD_V20_ODD (               0xc0000, 0x20000 )
  2617.  
  2618.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  2619.     /* no ROM, program will be copied by the main CPU */
  2620.  
  2621.     ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  2622.     ROM_LOAD( "if-c-00.bin",  0x00000, 0x20000, 0x745e6638 )    /* sprites */
  2623.     ROM_LOAD( "if-c-10.bin",  0x20000, 0x20000, 0xb7108449 )
  2624.     ROM_LOAD( "if-c-20.bin",  0x40000, 0x20000, 0xaef33cba )
  2625.     ROM_LOAD( "if-c-30.bin",  0x60000, 0x20000, 0x1f98e695 )
  2626.  
  2627.     ROM_REGION( 0x040000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  2628.     ROM_LOAD( "if-a-a0.bin",  0x00000, 0x10000, 0x34ee2d77 )    /* tiles #1 */
  2629.     ROM_LOAD( "if-a-a1.bin",  0x10000, 0x10000, 0x6bd2845b )
  2630.     ROM_LOAD( "if-a-a2.bin",  0x20000, 0x10000, 0x090d50e5 )
  2631.     ROM_LOAD( "if-a-a3.bin",  0x30000, 0x10000, 0x3a8e3083 )
  2632.  
  2633.     ROM_REGION( 0x040000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  2634.     ROM_LOAD( "if-a-b0.bin",  0x00000, 0x10000, 0xb425c829 )    /* tiles #2 */
  2635.     ROM_LOAD( "if-a-b1.bin",  0x10000, 0x10000, 0xe9bfe23e )
  2636.     ROM_LOAD( "if-a-b2.bin",  0x20000, 0x10000, 0x256e50f2 )
  2637.     ROM_LOAD( "if-a-b3.bin",  0x30000, 0x10000, 0x4c682785 )
  2638.  
  2639.     ROM_REGION( 0x20000, REGION_SOUND1 )    /* samples */
  2640.     ROM_LOAD( "if-c-v0.bin",  0x00000, 0x10000, 0xcb64a194 )
  2641.     ROM_LOAD( "if-c-v1.bin",  0x10000, 0x10000, 0x45b68bf5 )
  2642. ROM_END
  2643.  
  2644. ROM_START( loht )
  2645.     ROM_REGION( 0x100000, REGION_CPU1 )
  2646.     ROM_LOAD_V20_EVEN( "tom_c-h0.rom", 0x00000, 0x20000, 0xa63204b6 )
  2647.     ROM_LOAD_V20_ODD ( "tom_c-l0.rom", 0x00000, 0x20000, 0xe788002f )
  2648.     ROM_LOAD_V20_EVEN( "tom_c-h3.rom", 0x40000, 0x20000, 0x714778b5 )
  2649.     ROM_RELOAD_V20_EVEN(               0xc0000, 0x20000 )
  2650.     ROM_LOAD_V20_ODD ( "tom_c-l3.rom", 0x40000, 0x20000, 0x2f049b03 )
  2651.     ROM_RELOAD_V20_ODD (               0xc0000, 0x20000 )
  2652.  
  2653.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  2654.     /* no ROM, program will be copied by the main CPU */
  2655.  
  2656.     ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  2657.     ROM_LOAD( "tom_m53.rom",  0x00000, 0x20000, 0x0b83265f )    /* sprites */
  2658.     ROM_LOAD( "tom_m51.rom",  0x20000, 0x20000, 0x8ec5f6f3 )
  2659.     ROM_LOAD( "tom_m49.rom",  0x40000, 0x20000, 0xa41d3bfd )
  2660.     ROM_LOAD( "tom_m47.rom",  0x60000, 0x20000, 0x9d81a25b )
  2661.  
  2662.     ROM_REGION( 0x040000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  2663.     ROM_LOAD( "tom_m21.rom",  0x00000, 0x10000, 0x3ca3e771 )    /* tiles #1 */
  2664.     ROM_LOAD( "tom_m22.rom",  0x10000, 0x10000, 0x7a05ee2f )
  2665.     ROM_LOAD( "tom_m20.rom",  0x20000, 0x10000, 0x79aa2335 )
  2666.     ROM_LOAD( "tom_m23.rom",  0x30000, 0x10000, 0x789e8b24 )
  2667.  
  2668.     ROM_REGION( 0x040000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  2669.     ROM_LOAD( "tom_m26.rom",  0x00000, 0x10000, 0x44626bf6 )    /* tiles #2 */
  2670.     ROM_LOAD( "tom_m27.rom",  0x10000, 0x10000, 0x464952cf )
  2671.     ROM_LOAD( "tom_m25.rom",  0x20000, 0x10000, 0x3db9b2c7 )
  2672.     ROM_LOAD( "tom_m24.rom",  0x30000, 0x10000, 0xf01fe899 )
  2673.  
  2674.     ROM_REGION( 0x10000, REGION_SOUND1 )    /* samples */
  2675.     ROM_LOAD( "tom_m44.rom",  0x00000, 0x10000, 0x3ed51d1f )
  2676. ROM_END
  2677.  
  2678. ROM_START( xmultipl )
  2679.     ROM_REGION( 0x100000, REGION_CPU1 )
  2680.     ROM_LOAD_V20_EVEN( "ch3.h3",       0x00000, 0x20000, 0x20685021 )
  2681.     ROM_LOAD_V20_ODD ( "cl3.l3",       0x00000, 0x20000, 0x93fdd200 )
  2682.     ROM_LOAD_V20_EVEN( "ch0.h0",       0x40000, 0x10000, 0x9438dd8a )
  2683.     ROM_RELOAD_V20_EVEN(               0xe0000, 0x10000 )
  2684.     ROM_LOAD_V20_ODD ( "cl0.l0",       0x40000, 0x10000, 0x06a9e213 )
  2685.     ROM_RELOAD_V20_ODD (               0xe0000, 0x10000 )
  2686.  
  2687.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  2688.     /* no ROM, program will be copied by the main CPU */
  2689.  
  2690.     ROM_REGION( 0x100000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  2691.     ROM_LOAD( "t44.00",       0x00000, 0x20000, 0xdb45186e )    /* sprites */
  2692.     ROM_LOAD( "t45.01",       0x20000, 0x20000, 0x4d0764d4 )
  2693.     ROM_LOAD( "t46.10",       0x40000, 0x20000, 0xf0c465a4 )
  2694.     ROM_LOAD( "t47.11",       0x60000, 0x20000, 0x1263b24b )
  2695.     ROM_LOAD( "t48.20",       0x80000, 0x20000, 0x4129944f )
  2696.     ROM_LOAD( "t49.21",       0xa0000, 0x20000, 0x2346e6f9 )
  2697.     ROM_LOAD( "t50.30",       0xc0000, 0x20000, 0xe322543e )
  2698.     ROM_LOAD( "t51.31",       0xe0000, 0x20000, 0x229bf7b1 )
  2699.  
  2700.     ROM_REGION( 0x080000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  2701.     ROM_LOAD( "t53.a0",       0x00000, 0x20000, 0x1a082494 )    /* tiles #1 */
  2702.     ROM_LOAD( "t54.a1",       0x20000, 0x20000, 0x076c16c5 )
  2703.     ROM_LOAD( "t55.a2",       0x40000, 0x20000, 0x25d877a5 )
  2704.     ROM_LOAD( "t56.a3",       0x60000, 0x20000, 0x5b1213f5 )
  2705.  
  2706.     ROM_REGION( 0x080000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  2707.     ROM_LOAD( "t57.b0",       0x00000, 0x20000, 0x0a84e0c7 )    /* tiles #2 */
  2708.     ROM_LOAD( "t58.b1",       0x20000, 0x20000, 0xa874121d )
  2709.     ROM_LOAD( "t59.b2",       0x40000, 0x20000, 0x69deb990 )
  2710.     ROM_LOAD( "t60.b3",       0x60000, 0x20000, 0x14c69f99 )
  2711.  
  2712.     ROM_REGION( 0x20000, REGION_SOUND1 )    /* samples */
  2713.     ROM_LOAD( "t52.v0",       0x00000, 0x20000, 0x2db1bd80 )
  2714. ROM_END
  2715.  
  2716. ROM_START( dbreed )
  2717.     ROM_REGION( 0x100000, REGION_CPU1 )
  2718.     ROM_LOAD_V20_EVEN( "db_c-h3.rom",  0x00000, 0x20000, 0x4bf3063c )
  2719.     ROM_LOAD_V20_ODD ( "db_c-l3.rom",  0x00000, 0x20000, 0xe4b89b79 )
  2720.     ROM_LOAD_V20_EVEN( "db_c-h0.rom",  0x60000, 0x10000, 0x5aa79fb2 )
  2721.     ROM_RELOAD_V20_EVEN(               0xe0000, 0x10000 )
  2722.     ROM_LOAD_V20_ODD ( "db_c-l0.rom",  0x60000, 0x10000, 0xed0f5e06 )
  2723.     ROM_RELOAD_V20_ODD (               0xe0000, 0x10000 )
  2724.  
  2725.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  2726.     /* no ROM, program will be copied by the main CPU */
  2727.  
  2728.     ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  2729.     ROM_LOAD( "db_k800m.rom", 0x00000, 0x20000, 0xc027a8cf )    /* sprites */
  2730.     ROM_LOAD( "db_k801m.rom", 0x20000, 0x20000, 0x093faf33 )
  2731.     ROM_LOAD( "db_k802m.rom", 0x40000, 0x20000, 0x055b4c59 )
  2732.     ROM_LOAD( "db_k803m.rom", 0x60000, 0x20000, 0x8ed63922 )
  2733.  
  2734.     ROM_REGION( 0x080000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  2735.     ROM_LOAD( "db_a0m.rom",   0x00000, 0x20000, 0x4c83e92e )    /* tiles #1 */
  2736.     ROM_LOAD( "db_a1m.rom",   0x20000, 0x20000, 0x835ef268 )
  2737.     ROM_LOAD( "db_a2m.rom",   0x40000, 0x20000, 0x5117f114 )
  2738.     ROM_LOAD( "db_a3m.rom",   0x60000, 0x20000, 0x8eb0c978 )
  2739.  
  2740.     ROM_REGION( 0x080000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  2741.     ROM_LOAD( "db_b0m.rom",   0x00000, 0x20000, 0x4c83e92e )    /* tiles #2 */
  2742.     ROM_LOAD( "db_b1m.rom",   0x20000, 0x20000, 0x835ef268 )
  2743.     ROM_LOAD( "db_b2m.rom",   0x40000, 0x20000, 0x5117f114 )
  2744.     ROM_LOAD( "db_b3m.rom",   0x60000, 0x20000, 0x8eb0c978 )
  2745.  
  2746.     ROM_REGION( 0x20000, REGION_SOUND1 )    /* samples */
  2747.     ROM_LOAD( "db_c-v0.rom",  0x00000, 0x20000, 0x312f7282 )
  2748. ROM_END
  2749.  
  2750. ROM_START( rtype2 )
  2751.     ROM_REGION( 0x100000, REGION_CPU1 )
  2752.     ROM_LOAD_V20_EVEN( "ic54.8d",      0x00000, 0x20000, 0xd8ece6f4 )
  2753.     ROM_LOAD_V20_ODD ( "ic60.9d",      0x00000, 0x20000, 0x32cfb2e4 )
  2754.     ROM_LOAD_V20_EVEN( "ic53.8b",      0x40000, 0x20000, 0x4f6e9b15 )
  2755.     ROM_RELOAD_V20_EVEN(               0xc0000, 0x20000 )
  2756.     ROM_LOAD_V20_ODD ( "ic59.9b",      0x40000, 0x20000, 0x0fd123bf )
  2757.     ROM_RELOAD_V20_ODD (               0xc0000, 0x20000 )
  2758.  
  2759.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  2760.     ROM_LOAD( "ic17.4f",      0x0000, 0x10000, 0x73ffecb4 )
  2761.  
  2762.     ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  2763.     ROM_LOAD( "ic31.6l",      0x00000, 0x20000, 0x2cd8f913 )    /* sprites */
  2764.     ROM_LOAD( "ic21.4l",      0x20000, 0x20000, 0x5033066d )
  2765.     ROM_LOAD( "ic32.6m",      0x40000, 0x20000, 0xec3a0450 )
  2766.     ROM_LOAD( "ic22.4m",      0x60000, 0x20000, 0xdb6176fc )
  2767.  
  2768.     ROM_REGION( 0x100000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  2769.     ROM_LOAD( "ic50.7s",      0x00000, 0x20000, 0xf3f8736e )    /* tiles */
  2770.     ROM_LOAD( "ic51.7u",      0x20000, 0x20000, 0xb4c543af )
  2771.     ROM_LOAD( "ic56.8s",      0x40000, 0x20000, 0x4cb80d66 )
  2772.     ROM_LOAD( "ic57.8u",      0x60000, 0x20000, 0xbee128e0 )
  2773.     ROM_LOAD( "ic65.9r",      0x80000, 0x20000, 0x2dc9c71a )
  2774.     ROM_LOAD( "ic66.9u",      0xa0000, 0x20000, 0x7533c428 )
  2775.     ROM_LOAD( "ic63.9m",      0xc0000, 0x20000, 0xa6ad67f2 )
  2776.     ROM_LOAD( "ic64.9p",      0xe0000, 0x20000, 0x3686d555 )
  2777.  
  2778.     ROM_REGION( 0x20000, REGION_SOUND1 )    /* samples */
  2779.     ROM_LOAD( "ic14.4c",      0x00000, 0x20000, 0x637172d5 )
  2780. ROM_END
  2781.  
  2782. ROM_START( rtype2j )
  2783.     ROM_REGION( 0x100000, REGION_CPU1 )
  2784.     ROM_LOAD_V20_EVEN( "rt2-a-h0.54",  0x00000, 0x20000, 0x7857ccf6 )
  2785.     ROM_LOAD_V20_ODD ( "rt2-a-l0.60",  0x00000, 0x20000, 0xcb22cd6e )
  2786.     ROM_LOAD_V20_EVEN( "rt2-a-h1.53",  0x40000, 0x20000, 0x49e75d28 )
  2787.     ROM_RELOAD_V20_EVEN(               0xc0000, 0x20000 )
  2788.     ROM_LOAD_V20_ODD ( "rt2-a-l1.59",  0x40000, 0x20000, 0x12ec1676 )
  2789.     ROM_RELOAD_V20_ODD (               0xc0000, 0x20000 )
  2790.  
  2791.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  2792.     ROM_LOAD( "ic17.4f",      0x0000, 0x10000, 0x73ffecb4 )
  2793.  
  2794.     ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  2795.     ROM_LOAD( "ic31.6l",      0x00000, 0x20000, 0x2cd8f913 )    /* sprites */
  2796.     ROM_LOAD( "ic21.4l",      0x20000, 0x20000, 0x5033066d )
  2797.     ROM_LOAD( "ic32.6m",      0x40000, 0x20000, 0xec3a0450 )
  2798.     ROM_LOAD( "ic22.4m",      0x60000, 0x20000, 0xdb6176fc )
  2799.  
  2800.     ROM_REGION( 0x100000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  2801.     ROM_LOAD( "ic50.7s",      0x00000, 0x20000, 0xf3f8736e )    /* tiles */
  2802.     ROM_LOAD( "ic51.7u",      0x20000, 0x20000, 0xb4c543af )
  2803.     ROM_LOAD( "ic56.8s",      0x40000, 0x20000, 0x4cb80d66 )
  2804.     ROM_LOAD( "ic57.8u",      0x60000, 0x20000, 0xbee128e0 )
  2805.     ROM_LOAD( "ic65.9r",      0x80000, 0x20000, 0x2dc9c71a )
  2806.     ROM_LOAD( "ic66.9u",      0xa0000, 0x20000, 0x7533c428 )
  2807.     ROM_LOAD( "ic63.9m",      0xc0000, 0x20000, 0xa6ad67f2 )
  2808.     ROM_LOAD( "ic64.9p",      0xe0000, 0x20000, 0x3686d555 )
  2809.  
  2810.     ROM_REGION( 0x20000, REGION_SOUND1 )    /* samples */
  2811.     ROM_LOAD( "ic14.4c",      0x00000, 0x20000, 0x637172d5 )
  2812. ROM_END
  2813.  
  2814. ROM_START( majtitle )
  2815.     ROM_REGION( 0x100000, REGION_CPU1 )
  2816.     ROM_LOAD_V20_EVEN( "mt_m0.bin",    0x00000, 0x20000, 0xb9682c70 )
  2817.     ROM_LOAD_V20_ODD ( "mt_l0.bin",    0x00000, 0x20000, 0x702c9fd6 )
  2818.     ROM_LOAD_V20_EVEN( "mt_m1.bin",    0x40000, 0x20000, 0xd9e97c30 )
  2819.     ROM_RELOAD_V20_EVEN(               0xc0000, 0x20000 )
  2820.     ROM_LOAD_V20_ODD ( "mt_l1.bin",    0x40000, 0x20000, 0x8dbd91b5 )
  2821.     ROM_RELOAD_V20_ODD (               0xc0000, 0x20000 )
  2822.  
  2823.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  2824.     ROM_LOAD( "mt_sp.bin",    0x0000, 0x10000, 0xe44260a9 )
  2825.  
  2826.     ROM_REGION( 0x100000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  2827.     ROM_LOAD( "mt_n0.bin",    0x00000, 0x40000, 0x5618cddc )    /* sprites #1 */
  2828.     ROM_LOAD( "mt_n1.bin",    0x40000, 0x40000, 0x483b873b )
  2829.     ROM_LOAD( "mt_n2.bin",    0x80000, 0x40000, 0x4f5d665b )
  2830.     ROM_LOAD( "mt_n3.bin",    0xc0000, 0x40000, 0x83571549 )
  2831.  
  2832.     ROM_REGION( 0x080000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  2833.     ROM_LOAD( "mt_c0.bin",    0x00000, 0x20000, 0x780e7a02 )    /* tiles */
  2834.     ROM_LOAD( "mt_c1.bin",    0x20000, 0x20000, 0x45ad1381 )
  2835.     ROM_LOAD( "mt_c2.bin",    0x40000, 0x20000, 0x5df5856d )
  2836.     ROM_LOAD( "mt_c3.bin",    0x60000, 0x20000, 0xf5316cc8 )
  2837.  
  2838.     ROM_REGION( 0x080000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  2839.     ROM_LOAD( "mt_f0.bin",    0x00000, 0x20000, 0x2d5e05d5 )    /* sprites #2 */
  2840.     ROM_LOAD( "mt_f1.bin",    0x20000, 0x20000, 0xc68cd65f )
  2841.     ROM_LOAD( "mt_f2.bin",    0x40000, 0x20000, 0xa71feb2d )
  2842.     ROM_LOAD( "mt_f3.bin",    0x60000, 0x20000, 0x179f7562 )
  2843.  
  2844.     ROM_REGION( 0x20000, REGION_SOUND1 )    /* samples */
  2845.     ROM_LOAD( "mt_vo.bin",    0x00000, 0x20000, 0xeb24bb2c )
  2846. ROM_END
  2847.  
  2848. ROM_START( hharry )
  2849.     ROM_REGION( 0x100000, REGION_CPU1 )
  2850.     ROM_LOAD_V20_EVEN( "a-h0-v.rom",   0x00000, 0x20000, 0xc52802a5 )
  2851.     ROM_LOAD_V20_ODD ( "a-l0-v.rom",   0x00000, 0x20000, 0xf463074c )
  2852.     ROM_LOAD_V20_EVEN( "a-h1-0.rom",   0x60000, 0x10000, 0x3ae21335 )
  2853.     ROM_RELOAD_V20_EVEN(               0xe0000, 0x10000 )
  2854.     ROM_LOAD_V20_ODD ( "a-l1-0.rom",   0x60000, 0x10000, 0xbc6ac5f9 )
  2855.     ROM_RELOAD_V20_ODD (               0xe0000, 0x10000 )
  2856.  
  2857.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  2858.     ROM_LOAD( "a-sp-0.rom",   0x0000, 0x10000, 0x80e210e7 )
  2859.  
  2860.     ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  2861.     ROM_LOAD( "hh_00.rom",    0x00000, 0x20000, 0xec5127ef )    /* sprites */
  2862.     ROM_LOAD( "hh_10.rom",    0x20000, 0x20000, 0xdef65294 )
  2863.     ROM_LOAD( "hh_20.rom",    0x40000, 0x20000, 0xbb0d6ad4 )
  2864.     ROM_LOAD( "hh_30.rom",    0x60000, 0x20000, 0x4351044e )
  2865.  
  2866.     ROM_REGION( 0x080000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  2867.     ROM_LOAD( "hh_a0.rom",    0x00000, 0x20000, 0xc577ba5f )    /* tiles */
  2868.     ROM_LOAD( "hh_a1.rom",    0x20000, 0x20000, 0x429d12ab )
  2869.     ROM_LOAD( "hh_a2.rom",    0x40000, 0x20000, 0xb5b163b0 )
  2870.     ROM_LOAD( "hh_a3.rom",    0x60000, 0x20000, 0x8ef566a1 )
  2871.  
  2872.     ROM_REGION( 0x20000, REGION_SOUND1 )    /* samples */
  2873.     ROM_LOAD( "a-v0-0.rom",   0x00000, 0x20000, 0xfaaacaff )
  2874. ROM_END
  2875.  
  2876. ROM_START( hharryu )
  2877.     ROM_REGION( 0x100000, REGION_CPU1 )
  2878.     ROM_LOAD_V20_EVEN( "a-ho-u.8d",    0x00000, 0x20000, 0xede7f755 )
  2879.     ROM_LOAD_V20_ODD ( "a-lo-u.9d",    0x00000, 0x20000, 0xdf0726ae )
  2880.     ROM_LOAD_V20_EVEN( "a-h1-f.8b",    0x60000, 0x10000, 0x31b741c5 )
  2881.     ROM_RELOAD_V20_EVEN(               0xe0000, 0x10000 )
  2882.     ROM_LOAD_V20_ODD ( "a-l1-f.9b",    0x60000, 0x10000, 0xb23e966c )
  2883.     ROM_RELOAD_V20_ODD (               0xe0000, 0x10000 )
  2884.  
  2885.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  2886.     ROM_LOAD( "a-sp-0.rom",   0x0000, 0x10000, 0x80e210e7 )
  2887.  
  2888.     ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  2889.     ROM_LOAD( "hh_00.rom",    0x00000, 0x20000, 0xec5127ef )    /* sprites */
  2890.     ROM_LOAD( "hh_10.rom",    0x20000, 0x20000, 0xdef65294 )
  2891.     ROM_LOAD( "hh_20.rom",    0x40000, 0x20000, 0xbb0d6ad4 )
  2892.     ROM_LOAD( "hh_30.rom",    0x60000, 0x20000, 0x4351044e )
  2893.  
  2894.     ROM_REGION( 0x080000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  2895.     ROM_LOAD( "hh_a0.rom",    0x00000, 0x20000, 0xc577ba5f )    /* tiles */
  2896.     ROM_LOAD( "hh_a1.rom",    0x20000, 0x20000, 0x429d12ab )
  2897.     ROM_LOAD( "hh_a2.rom",    0x40000, 0x20000, 0xb5b163b0 )
  2898.     ROM_LOAD( "hh_a3.rom",    0x60000, 0x20000, 0x8ef566a1 )
  2899.  
  2900.     ROM_REGION( 0x20000, REGION_SOUND1 )    /* samples */
  2901.     ROM_LOAD( "a-v0-0.rom",   0x00000, 0x20000, 0xfaaacaff )
  2902. ROM_END
  2903.  
  2904. ROM_START( dkgensan )
  2905.     ROM_REGION( 0x100000, REGION_CPU1 )
  2906.     ROM_LOAD_V20_EVEN( "gen-a-h0.bin", 0x00000, 0x20000, 0x07a45f6d )
  2907.     ROM_LOAD_V20_ODD ( "gen-a-l0.bin", 0x00000, 0x20000, 0x46478fea )
  2908.     ROM_LOAD_V20_EVEN( "gen-a-h1.bin", 0x60000, 0x10000, 0x54e5b73c )
  2909.     ROM_RELOAD_V20_EVEN(               0xe0000, 0x10000 )
  2910.     ROM_LOAD_V20_ODD ( "gen-a-l1.bin", 0x60000, 0x10000, 0x894f8a9f )
  2911.     ROM_RELOAD_V20_ODD (               0xe0000, 0x10000 )
  2912.  
  2913.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  2914.     ROM_LOAD( "gen-a-sp.bin", 0x0000, 0x10000, 0xe83cfc2c )
  2915.  
  2916.     ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  2917.     ROM_LOAD( "hh_00.rom",    0x00000, 0x20000, 0xec5127ef )    /* sprites */
  2918.     ROM_LOAD( "hh_10.rom",    0x20000, 0x20000, 0xdef65294 )
  2919.     ROM_LOAD( "hh_20.rom",    0x40000, 0x20000, 0xbb0d6ad4 )
  2920.     ROM_LOAD( "hh_30.rom",    0x60000, 0x20000, 0x4351044e )
  2921.  
  2922.     ROM_REGION( 0x080000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  2923.     ROM_LOAD( "hh_a0.rom",    0x00000, 0x20000, 0xc577ba5f )    /* tiles */
  2924.     ROM_LOAD( "hh_a1.rom",    0x20000, 0x20000, 0x429d12ab )
  2925.     ROM_LOAD( "hh_a2.rom",    0x40000, 0x20000, 0xb5b163b0 )
  2926.     ROM_LOAD( "hh_a3.rom",    0x60000, 0x20000, 0x8ef566a1 )
  2927.  
  2928.     ROM_REGION( 0x20000, REGION_SOUND1 )    /* samples */
  2929.     ROM_LOAD( "gen-vo.bin",   0x00000, 0x20000, 0xd8595c66 )
  2930. ROM_END
  2931.  
  2932. ROM_START( kengo )
  2933.     ROM_REGION( 0x100000, REGION_CPU1 )
  2934.     ROM_LOAD_V20_EVEN( "ken_d-h0.rom", 0x00000, 0x20000, 0xf4ddeea5 )
  2935.     ROM_RELOAD_V20_EVEN(               0xc0000, 0x20000 )
  2936.     ROM_LOAD_V20_ODD ( "ken_d-l0.rom", 0x00000, 0x20000, 0x04dc0f81 )
  2937.     ROM_RELOAD_V20_ODD (               0xc0000, 0x20000 )
  2938.  
  2939.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  2940.     ROM_LOAD( "ken_d-sp.rom", 0x0000, 0x10000, 0x233ca1cf )
  2941.  
  2942.     ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  2943.     ROM_LOAD( "ken_m21.rom",  0x00000, 0x20000, 0xd7722f87 )    /* sprites */
  2944.     ROM_LOAD( "ken_m22.rom",  0x20000, 0x20000, 0xa00dac85 )
  2945.     ROM_LOAD( "ken_m31.rom",  0x40000, 0x20000, 0xe00b95a6 )
  2946.     ROM_LOAD( "ken_m32.rom",  0x60000, 0x20000, 0x30a844c4 )
  2947.  
  2948.     ROM_REGION( 0x080000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  2949.     ROM_LOAD( "ken_m51.rom",  0x00000, 0x20000, 0x1646cf4f )    /* tiles */
  2950.     ROM_LOAD( "ken_m57.rom",  0x20000, 0x20000, 0xa9f88d90 )
  2951.     ROM_LOAD( "ken_m66.rom",  0x40000, 0x20000, 0xe9d17645 )
  2952.     ROM_LOAD( "ken_m64.rom",  0x60000, 0x20000, 0xdf46709b )
  2953.  
  2954.     ROM_REGION( 0x20000, REGION_SOUND1 )    /* samples */
  2955.     ROM_LOAD( "ken_m14.rom",  0x00000, 0x20000, 0x6651e9b7 )
  2956. ROM_END
  2957.  
  2958. ROM_START( poundfor )
  2959.     ROM_REGION( 0x100000, REGION_CPU1 )
  2960.     ROM_LOAD_V20_EVEN( "ppa-h0-b.bin", 0x00000, 0x20000, 0x50d4a2d8 )
  2961.     ROM_LOAD_V20_ODD ( "ppa-l0-b.bin", 0x00000, 0x20000, 0xbd997942 )
  2962.     ROM_LOAD_V20_EVEN( "ppa-h1.9f",    0x40000, 0x20000, 0xf6c82f48 )
  2963.     ROM_RELOAD_V20_EVEN(               0xc0000, 0x20000 )
  2964.     ROM_LOAD_V20_ODD ( "ppa-l1.9c",    0x40000, 0x20000, 0x5b07b087 )
  2965.     ROM_RELOAD_V20_ODD (               0xc0000, 0x20000 )
  2966.  
  2967.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  2968.     ROM_LOAD( "ppa-sp.4j",    0x0000, 0x10000, 0x3f458a5b )
  2969.  
  2970.     ROM_REGION( 0x100000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  2971.     ROM_LOAD( "ppb-n0.bin",   0x00000, 0x40000, 0x951a41f8 )    /* sprites */
  2972.     ROM_LOAD( "ppb-n1.bin",   0x40000, 0x40000, 0xc609b7f2 )
  2973.     ROM_LOAD( "ppb-n2.bin",   0x80000, 0x40000, 0x318c0b5f )
  2974.     ROM_LOAD( "ppb-n3.bin",   0xc0000, 0x40000, 0x93dc9490 )
  2975.  
  2976.     ROM_REGION( 0x080000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  2977.     ROM_LOAD( "ppa-g00.bin",  0x00000, 0x20000, 0x8a88a174 )    /* tiles */
  2978.     ROM_LOAD( "ppa-g10.bin",  0x20000, 0x20000, 0xe48a66ac )
  2979.     ROM_LOAD( "ppa-g20.bin",  0x40000, 0x20000, 0x12b93e79 )
  2980.     ROM_LOAD( "ppa-g30.bin",  0x60000, 0x20000, 0xfaa39aee )
  2981.  
  2982.     ROM_REGION( 0x40000, REGION_SOUND1 )    /* samples */
  2983.     ROM_LOAD( "ppa-v0.bin",   0x00000, 0x40000, 0x03321664 )
  2984. ROM_END
  2985.  
  2986. ROM_START( poundfou )
  2987.     ROM_REGION( 0x100000, REGION_CPU1 )
  2988.     ROM_LOAD_V20_EVEN( "ppa-ho-a.9e",  0x00000, 0x20000, 0xff4c83a4 )
  2989.     ROM_LOAD_V20_ODD ( "ppa-lo-a.9d",  0x00000, 0x20000, 0x3374ce8f )
  2990.     ROM_LOAD_V20_EVEN( "ppa-h1.9f",    0x40000, 0x20000, 0xf6c82f48 )
  2991.     ROM_RELOAD_V20_EVEN(               0xc0000, 0x20000 )
  2992.     ROM_LOAD_V20_ODD ( "ppa-l1.9c",    0x40000, 0x20000, 0x5b07b087 )
  2993.     ROM_RELOAD_V20_ODD (               0xc0000, 0x20000 )
  2994.  
  2995.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  2996.     ROM_LOAD( "ppa-sp.4j",    0x0000, 0x10000, 0x3f458a5b )
  2997.  
  2998.     ROM_REGION( 0x100000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  2999.     ROM_LOAD( "ppb-n0.bin",   0x00000, 0x40000, 0x951a41f8 )    /* sprites */
  3000.     ROM_LOAD( "ppb-n1.bin",   0x40000, 0x40000, 0xc609b7f2 )
  3001.     ROM_LOAD( "ppb-n2.bin",   0x80000, 0x40000, 0x318c0b5f )
  3002.     ROM_LOAD( "ppb-n3.bin",   0xc0000, 0x40000, 0x93dc9490 )
  3003.  
  3004.     ROM_REGION( 0x080000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  3005.     ROM_LOAD( "ppa-g00.bin",  0x00000, 0x20000, 0x8a88a174 )    /* tiles */
  3006.     ROM_LOAD( "ppa-g10.bin",  0x20000, 0x20000, 0xe48a66ac )
  3007.     ROM_LOAD( "ppa-g20.bin",  0x40000, 0x20000, 0x12b93e79 )
  3008.     ROM_LOAD( "ppa-g30.bin",  0x60000, 0x20000, 0xfaa39aee )
  3009.  
  3010.     ROM_REGION( 0x40000, REGION_SOUND1 )    /* samples */
  3011.     ROM_LOAD( "ppa-v0.bin",   0x00000, 0x40000, 0x03321664 )
  3012. ROM_END
  3013.  
  3014. ROM_START( airduel )
  3015.     ROM_REGION( 0x100000, REGION_CPU1 )
  3016.     ROM_LOAD_V20_EVEN( "ad-c-h0.bin",  0x00000, 0x20000, 0x12140276 )
  3017.     ROM_LOAD_V20_ODD ( "ad-c-l0.bin",  0x00000, 0x20000, 0x4ac0b91d )
  3018.     ROM_LOAD_V20_EVEN( "ad-c-h3.bin",  0x40000, 0x20000, 0x9f7cfca3 )
  3019.     ROM_RELOAD_V20_EVEN(               0xc0000, 0x20000 )
  3020.     ROM_LOAD_V20_ODD ( "ad-c-l3.bin",  0x40000, 0x20000, 0x9dd343f7 )
  3021.     ROM_RELOAD_V20_ODD (               0xc0000, 0x20000 )
  3022.  
  3023.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  3024.     /* no ROM, program will be copied by the main CPU */
  3025.  
  3026.     ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  3027.     ROM_LOAD( "ad-00.bin",    0x00000, 0x20000, 0x2f0d599b )    /* sprites */
  3028.     ROM_LOAD( "ad-10.bin",    0x20000, 0x20000, 0x9865856b )
  3029.     ROM_LOAD( "ad-20.bin",    0x40000, 0x20000, 0xd392aef2 )
  3030.     ROM_LOAD( "ad-30.bin",    0x60000, 0x20000, 0x923240c3 )
  3031.  
  3032.     ROM_REGION( 0x080000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  3033.     ROM_LOAD( "ad-a0.bin",    0x00000, 0x20000, 0xce134b47 )    /* tiles #1 */
  3034.     ROM_LOAD( "ad-a1.bin",    0x20000, 0x20000, 0x097fd853 )
  3035.     ROM_LOAD( "ad-a2.bin",    0x40000, 0x20000, 0x6a94c1b9 )
  3036.     ROM_LOAD( "ad-a3.bin",    0x60000, 0x20000, 0x6637c349 )
  3037.  
  3038.     ROM_REGION( 0x080000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  3039.     ROM_LOAD( "ad-b0.bin",    0x00000, 0x20000, 0xce134b47 )    /* tiles #2 */
  3040.     ROM_LOAD( "ad-b1.bin",    0x20000, 0x20000, 0x097fd853 )
  3041.     ROM_LOAD( "ad-b2.bin",    0x40000, 0x20000, 0x6a94c1b9 )
  3042.     ROM_LOAD( "ad-b3.bin",    0x60000, 0x20000, 0x6637c349 )
  3043.  
  3044.     ROM_REGION( 0x20000, REGION_SOUND1 )    /* samples */
  3045.     ROM_LOAD( "ad-v0.bin",    0x00000, 0x20000, 0x339f474d )
  3046. ROM_END
  3047.  
  3048. ROM_START( gallop )
  3049.     ROM_REGION( 0x100000, REGION_CPU1 )
  3050.     ROM_LOAD_V20_EVEN( "cc-c-h0.bin",  0x00000, 0x20000, 0x2217dcd0 )
  3051.     ROM_LOAD_V20_ODD ( "cc-c-l0.bin",  0x00000, 0x20000, 0xff39d7fb )
  3052.     ROM_LOAD_V20_EVEN( "cc-c-h3.bin",  0x40000, 0x20000, 0x9b2bbab9 )
  3053.     ROM_RELOAD_V20_EVEN(               0xc0000, 0x20000 )
  3054.     ROM_LOAD_V20_ODD ( "cc-c-l3.bin",  0x40000, 0x20000, 0xacd3278e )
  3055.     ROM_RELOAD_V20_ODD (               0xc0000, 0x20000 )
  3056.  
  3057.     ROM_REGION( 0x10000, REGION_CPU2 )    /* 64k for the audio CPU */
  3058.     /* no ROM, program will be copied by the main CPU */
  3059.  
  3060.     ROM_REGION( 0x080000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  3061.     ROM_LOAD( "cc-c-00.bin",  0x00000, 0x20000, 0x9d99deaa )    /* sprites */
  3062.     ROM_LOAD( "cc-c-10.bin",  0x20000, 0x20000, 0x7eb083ed )
  3063.     ROM_LOAD( "cc-c-20.bin",  0x40000, 0x20000, 0x9421489e )
  3064.     ROM_LOAD( "cc-c-30.bin",  0x60000, 0x20000, 0x920ec735 )
  3065.  
  3066.     ROM_REGION( 0x040000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  3067.     ROM_LOAD( "cc-b-a0.bin",  0x00000, 0x10000, 0xa33472bd )    /* tiles #1 */
  3068.     ROM_LOAD( "cc-b-a1.bin",  0x10000, 0x10000, 0x118b1f2d )
  3069.     ROM_LOAD( "cc-b-a2.bin",  0x20000, 0x10000, 0x83cebf48 )
  3070.     ROM_LOAD( "cc-b-a3.bin",  0x30000, 0x10000, 0x572903fc )
  3071.  
  3072.     ROM_REGION( 0x040000, REGION_GFX3 | REGIONFLAG_DISPOSE )
  3073.     ROM_LOAD( "cc-b-b0.bin",  0x00000, 0x10000, 0x0df5b439 )    /* tiles #2 */
  3074.     ROM_LOAD( "cc-b-b1.bin",  0x10000, 0x10000, 0x010b778f )
  3075.     ROM_LOAD( "cc-b-b2.bin",  0x20000, 0x10000, 0xbda9f6fb )
  3076.     ROM_LOAD( "cc-b-b3.bin",  0x30000, 0x10000, 0xd361ba3f )
  3077.  
  3078.     ROM_REGION( 0x20000, REGION_SOUND1 )    /* samples */
  3079.     ROM_LOAD( "cc-c-v0.bin",  0x00000, 0x20000, 0x6247bade )
  3080. ROM_END
  3081.  
  3082.  
  3083.  
  3084. GAMEX( 1987, rtype,    0,        rtype,    rtype,    0,        ROT0,   "Irem", "R-Type (Japan)", GAME_NO_COCKTAIL )
  3085. GAMEX( 1987, rtypepj,  rtype,    rtype,    rtypep,   0,        ROT0,   "Irem", "R-Type (Japan prototype)", GAME_NO_COCKTAIL )
  3086. GAMEX( 1987, rtypeu,   rtype,    rtype,    rtype,    0,        ROT0,   "Irem (Nintendo of America license)", "R-Type (US)", GAME_NO_COCKTAIL )
  3087. GAMEX( 1987, bchopper, 0,        m72,      bchopper, bchopper, ROT0,   "Irem", "Battle Chopper", GAME_NO_COCKTAIL )
  3088. GAMEX( 1987, mrheli,   bchopper, m72,      bchopper, mrheli,   ROT0,   "Irem", "Mr. HELI no Dai-Bouken", GAME_NO_COCKTAIL )
  3089. GAMEX( 1988, nspirit,  0,        m72,      nspirit,  nspirit,  ROT0,   "Irem", "Ninja Spirit", GAME_NO_COCKTAIL )
  3090. GAMEX( 1988, nspiritj, nspirit,  m72,      nspirit,  nspiritj, ROT0,   "Irem", "Saigo no Nindou (Japan)", GAME_NO_COCKTAIL )
  3091. GAMEX( 1988, imgfight, 0,        m72,      imgfight, imgfight, ROT270, "Irem", "Image Fight (Japan)", GAME_NO_COCKTAIL )
  3092. GAMEX( 1989, loht,     0,        m72,      loht,     loht,     ROT0,   "Irem", "Legend of Hero Tonma", GAME_NO_COCKTAIL )
  3093. GAMEX( 1989, xmultipl, 0,        xmultipl, xmultipl, xmultipl, ROT0,   "Irem", "X Multiply (Japan)", GAME_NO_COCKTAIL )
  3094. GAMEX( 1989, dbreed,   0,        dbreed,   dbreed,   dbreed,   ROT0,   "Irem", "Dragon Breed", GAME_NO_COCKTAIL )
  3095. GAMEX( 1989, rtype2,   0,        rtype2,   rtype2,   0,        ROT0,   "Irem", "R-Type II", GAME_NO_COCKTAIL )
  3096. GAMEX( 1989, rtype2j,  rtype2,   rtype2,   rtype2,   0,        ROT0,   "Irem", "R-Type II (Japan)", GAME_NO_COCKTAIL )
  3097. GAMEX( 1990, majtitle, 0,        majtitle, rtype2,   0,        ROT0,   "Irem", "Major Title (Japan)", GAME_NOT_WORKING | GAME_NO_COCKTAIL )
  3098. GAMEX( 1990, hharry,   0,        hharry,   hharry,   0,        ROT0,   "Irem", "Hammerin' Harry (World)", GAME_NO_COCKTAIL )
  3099. GAMEX( 1990, hharryu,  hharry,   hharryu,  hharry,   0,        ROT0,   "Irem America", "Hammerin' Harry (US)", GAME_NO_COCKTAIL )
  3100. GAMEX( 1990, dkgensan, hharry,   hharryu,  hharry,   0,        ROT0,   "Irem", "Daiku no Gensan (Japan)", GAME_NO_COCKTAIL )
  3101. GAMEX( 1991, kengo,    0,        hharry,   hharry,   0,        ROT0,   "Irem", "Ken-Go", GAME_NOT_WORKING | GAME_NO_COCKTAIL )
  3102. GAMEX( 1990, poundfor, 0,        poundfor, poundfor, 0,        ROT270, "Irem", "Pound for Pound (World)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
  3103. GAMEX( 1990, poundfou, poundfor, poundfor, poundfor, 0,        ROT270, "Irem America", "Pound for Pound (US)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
  3104. GAMEX( 1990, airduel,  0,        m72,      airduel,  airduel,  ROT270, "Irem", "Air Duel (Japan)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
  3105. GAMEX( 1991, gallop,   0,        m72,      gallop,   gallop,   ROT0,   "Irem", "Gallop - Armed police Unit (Japan)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL )
  3106.